SEEQUALITY.NET -> NEW SITE

Hello,

I am proud to announce that i have created new site called SEEQUALITY.NET. All content has been moved there, new articles, videos and curses about SQL Server, Business Intelligence, Data Science and .NET will appear there every day!

So please visit my new website, subscribe and learn.

Thanks!

Advertisements

Hello world!

Hello,

I would like to invite you to my blog where you can find some useful(or not) information about technology, especially Microsoft technology like Business Intelligence and database solutions (SQL Server). From time to time i will post something about .NET and the other  that i have to work with or which are interesting for me.

Finally i would like to invite you to take part in this blog, ask some questions and maybe write something interesting that i can post 🙂 visit achodkowski.wordpress.com from time to time – i want to blog on weekly basis.

If you want to find english posts please select “English” tag or Click here.

Jeśli chcesz znaleźć posty po polsku wybierz tag “Polish” albo Kliknij tutaj.

Thanks!

Adrian

Kilka słów o: Direct Query w PowerBI

W najnowszej odsłonie PowerBI Desktop dostaliśmy możliwość bezpośredniego odpytywania źródła danych przy pomocy technologii DirectQuery! A co za tym idzie nasz model nie jest już jedynie statyczną kopią danych źródłowych wymagającą cyklicznych przeładowań, a jedynie interfejsem raportowym odpytującym źródło danych. Do tej pory większość modeli nad jakimi pracowałem czy to pod postacią Power Pivot czy też Power BI wymagała częstych bądź rzadszych odświeżeni danych, problem ten aktualnie został rozwiązany wraz z nową wersją opisywanego oprogramowania.

Jak zaimplementować DirectQuery w Power BI Desktop? Jest to bardzo proste – wybieramy GetData a następnie np. SQL Server

Continue reading

Kilka słów o: konkatenacja pól z wartością NULL

Próbowaliście kiedyś łączyć wartości kilka pól i w wyniku tej operacji otrzymywaliście NULL? Dzieje się tak ze względu na fakt, iż NULL jest nieporównywalny z żadnym typem danych tak więc dodanie jakiejkolwiek wartości do NULL w rezultacie daje NULL. Aby obejść ten problem mamy kilka możliwości, które postaram się przedstawić w dalszej części tego artykułu.

W SQL Server możemy znaleźć właściwość CONCAT_NULL_YIELDS_NULL. Kontroluje ona zachowanie SQL Server w przypadku konkatenacji pól zawierających wartość NULL. Domyślnie jest ona włączona. Dla przykładu

SET CONCAT_NULL_YIELDS_NULL ON

GO

SELECT ‘abc’ + NULL AS RESULT

SET CONCAT_NULL_YIELDS_NULL OFF

GO

SELECT ‘abc’ + NULL AS RESULT

concat_nulls

 

 

 

 

 

 

Jak widać w bardzo prosty sposób można zmodyfikować zachowanie SQL Server jeśli chodzi o wartości NULL. Jednak nie zaleca się modyfikacji tej opcji, pożądany efekt można osiągnąć w lepszy sposób. A mianowicie używając funkcji ISNULL lub też COALESCE.

SELECT ISNULL(‘abc’,”) + ISNULL(NULL,”) AS RESULT

SELECT COALESCE(‘abc’,”) + COALESCE(NULL,”) AS RESULT

 

concat_nulls2

 

 

 

 

 

 

Jedyna różnica pomiędzy tymi funkcjami jest taka, że ISNULL może zamiast pola podstawić tylko jedną wartość a COALESCE wiele. Myślę, że znajomość tych trzech bardzo prostych funkcjonalności pozwala na rozwiązanie bardzo wielu problemów na które napotykamy w codziennej pracy.

Kilka słów o: Procesowanie i partycjonowanie SSAS od podszewki

W ostatnim czasie miałem zaszczyt wygłosić prelekcję na temat procesowania i partycjonowania SSAS na największej konferencji technologicznej w Polsce poświęconej zagadnieniom bazodanowym i analitycznym tj. SQLDAY2015. Wideo z tego wydarzenia można obejrzeć poniżej.

Few words about: MDXMissingMemberMode

Today I would like to write few words about MDXMissingMemberMode. This is property of a dimension in SSAS and sometimes a need occur to change its default value.

MDXMissingMemberMode has three possible values:

  • Default
  • Error
  • Ignore

where Default is Ignore. When we leave default value, all references in our MDX code that point to non existing members of dimension hierarchy will be ignored and client tool like SSMS will return empty result, for example

select {} on 0,

[Customer].[Customer].&[186951] on 1

from [Adventure Works]

Return nothing because member with uniqe name [Customer].[Customer].&[186951] doesn’t exist. When we set MDXMissingMemberMode to Error then we will get:

Query (2, 1) The level ‘&[186951]’ object was not found in the cube when the string, [Customer].[Customer].&[186951], was parsed.

Default behavior of this property is needed in most cases when we deal with flexible hierarchies – because when member moves from one parent member to another it automatically changes his unique name – but sometimes it will be useful to change this default behavior.

Few words about: hiding shared dimension hierarchies only for one cube

Few words about: hiding shared dimension hierarchies only for one cube

Sometimes, in many scenarios developer must deal with many cubes in the same project and share dimensions between them. IT’s easy to set up something like this but try to imagine situation when one cube musts be browsed by fiscal dates and the others need to use calendar dates. It is not a problem when we don’t have shared dimensions in our solution but for some people it can be when we have shared dimensions. But don’t be afraid – there is very simple solution to achieve our goal.

Let’s look at AdventureWorks Multidimensional project. There are two cubes: Adventure Works and Mined Customers. Both of them use Date dimension – we need to set for Adventure Works to see only Calendar hierarchy and Mined Customers need to see Calendar and Fiscal hierarchies – let’s do this!

First of all open Cube designer of Adventure Works and go to Cube Structure tab. There is dimensions window and there we need to find Fiscal hierarchy:

Cube structure dimensions

The only thing that you need to set up Visible property of Fiscal hierarchy to False.

dimension properties

That is all! From now shared dimensions could be more flexible to use. Thank you!