Wymiary bazy

Przegląd tematu

W niniejszym artykule wyjaśniono podstawowe wymiary: Rok podatkowy, Klasyfikacja, Organizacja i Dzień. Dokument opisuje w jaki sposób podstawowe wymiary są używane w statystykach OLAP i jakie pola zawierają.

Aplikacje związane z podstawowymi wymiarami, ich obszarami, działaniami i instrukcjami są szczegółowo opisane w oddzielnych artykułach.

Definicje terminów

  • Hurtownia danych – łączy istotne dla firmy dane z różnych źródeł danych. Dane są przekształcane i podsumowywane, a następnie przechowywane w bazie OLAP w postaci tabel faktów i wymiarów. Umożliwia to ich efektywną analizę. Przykładowo, w systemie ERP dane podstawowe oraz transakcyjne z obszarów sprzedaży i zaopatrzenia trafiają do bazy OLAP, pełniącej funkcję hurtowni danych
  • Tabele wymiarów – tabele wymiarów w hurtowni danych zawierają dane jakościowe, które klasyfikują dane ilościowe w tabeli faktów. Przykłady wymiarów to m.in.: Dzień, Pozycja sprzedaży, Klient. Dane w tabelach wymiarów zmieniają się stosunkowo rzadko i zawierają stosunkowo niewiele rekordów danych w porównaniu z tabelą faktów.
  • Tabele faktów – tabela faktów jest faktycznym centralnym elementem hurtowni danych. Zawiera dane ilościowe hurtowni danych, które powstały w wyniku procesów operacyjnych, takie jak obroty, ilości itp. Te liczby służą jako podstawa danych do analiz. Oprócz kluczowych danych, tabele wymiarów zawierają również odniesienia do wymiarów w celu klasyfikacji danych. W porównaniu z tabelami wymiarów, tabela faktów zawiera większe ilości danych, a dodatkowe rekordy danych są dodawane przy każdej aktualizacji.
  • Klasyfikacje — to hierarchiczna struktura określająca relacje nadrzędne i podrzędne między obiektami, tworząc ich ranking w systemie. Może składać się z jednego lub wielu poziomów, a jej elementy są wzajemnie powiązanymi węzłami. Węzły na wyższym poziomie nazywane są folderami, natomiast te znajdujące się na najniższym poziomie to liście.
  • Przetwarzanie analityczne online (OLAP) – to metoda analizy transakcji biznesowych w czasie rzeczywistym na zagregowanym, skondensowanym poziomie. Podstawowym przedmiotem analizy nie jest pojedyncza transakcja biznesowa, ale zestaw podobnych lub powiązanych transakcji biznesowych. W zależności od potrzeb można stosować różne poziomy agregacji. Ta technologia oprogramowania umożliwia analizę dużych ilości danych poprzez szybki, spójny, interaktywny dostęp do różnych widoków. Dane są przygotowywane w wielowymiarowych widokach, które odzwierciedlają struktury analizowanej firmy z perspektywy użytkownika. W systemie ERP dane istotne dla OLAP są pobierane z bazy danych OLTP, która zawiera bieżące dane podstawowe i transakcyjne. Dane OLAP są następnie przechowywane w oddzielnej bazie danych OLAP w tabelach faktów i wymiarów zgodnie ze schematem gwiazdy. Baza danych OLAP jest używana jako hurtownia danych.
  • Baza danych przetwarzania analitycznego online (baza danych OLAP) – baza danych przetwarzania analitycznego online (OLAP) zapewnia niezbędne struktury danych dla OLAP. W przeciwieństwie do baz danych OLTP, bardzo duże ilości danych są przetwarzane w transakcji przy użyciu zdenormalizowanych schematów.
  • Schemat gwiazdy – to model danych dla relacyjnych baz danych. Hurtownia danych jest zazwyczaj zorganizowana zgodnie ze schematem gwiazdy. Prosty schemat gwiazdy składa się z centralnej tabeli faktów i kilku tabel wymiarów, które są połączone z tabelą faktów za pomocą kluczy. W modelu tabela faktów jest pokazana w centrum, a tabele wymiarów są rozmieszczone wokół niej. Ta graficzna reprezentacja odpowiada kształtowi gwiazdy.
  • Statystyka – zajmuje się numerycznym rejestrowaniem, badaniem i wizualizacją zjawisk masowych. Fakty z przeszłości są gromadzone, zestawiane i analizowane przy użyciu określonych metod. Celem analizy tych danych jest identyfikacja odchyleń i błędów oraz opracowanie możliwości poprawy.

Rok finansowy

Lata i okresy podatkowe są zapisywane w jednostce biznesowej com.cisag.app.olap.obj.FiscalDay. Tabela wymiaru używa tego samego identyfikatora co tabela wymiaru Day. Aby przeanalizować statystyki OLAP według okresu podatkowego, należy połączyć ze sobą dwie tabele wymiarów, jak pokazano w poniższej klauzuli OQL:

FROM com.cisag.app.olap.obj.Day day

JOIN com.cisag.app.olap.obj.FiscalDay fiscal

ON day:id = fiscal:dayId

W środowisku wielofirmowym lata finansowe są zapisywane dla każdej spółki. Atrybut organizationalUnitId tabeli wymiarów zawiera identyfikator odpowiedniej firmy. Atrybut ten musi być powiązany z identyfikacją organizacji. Poniższy przykład przedstawia klauzulę OQL, która umożliwia ocenę statystyk sprzedaży na okres finansowy dla firmy 00000 w środowisku wielozakładowym:

Przykład
FROM com.cisag.app.olap.obj.Sales facts

JOIN com.cisag.app.olap.obj.Day ON

facts:dayId = day:id

JOIN com.cisag.app.olap.obj.OrganisationalUnit salesOrg ON

facts:organisationalUnitId = salesOrg:id

JOIN com.cisag.app.olap.obj.OrganisationalUnit company ON

salesOrg:financialOrganizationalUnit = company:guid

JOIN com.cisag.app.olap.obj.FiscalDay fiscal ON

day:id = fiscal:dayId AND
company:id = fiscal:organisationalUnitId

WHERE company:code = '00000′

Uwaga
Aby uniknąć niepożądanych wyników krzyżowych, można użyć nawiasów, aby określić kolejność, w jakiej odniesienia są analizowane.

Atrybuty tabeli wymiarów, które są istotne dla statystyk OLAP, wyjaśniono poniżej:

Atrybut Wyjaśnienie
dayId Atrybut zawiera identyfikację wymiaru Day. Dzień kalendarzowy jest zatem przywoływany przy użyciu tej samej identyfikacji numerycznej w dwóch tabelach wymiarów Day i Fiscal year.
organizationalUnitId Atrybut zawiera identyfikator firmy, która korzysta z roku obrotowego. Ten atrybut jest używany w środowisku wielofirmowym w celu powiązania tabeli wymiaru Fiscal year z firmą.
fiscalYearNumber Atrybut zawiera kolejny numer identyfikujący rok obrotowy.
fiscalQuarterNumber Atrybut zawiera kolejny numer identyfikujący kwartał we wszystkich latach obrotowych.
fiscalPeriodNumber Atrybut zawiera kolejny numer identyfikujący okres finansowy we wszystkich latach obrotowych.
fiscalWeekNumber Atrybut zawiera kolejny numer identyfikujący tydzień kalendarzowy we wszystkich latach obrotowych.
rok podatkowy Atrybut zawiera rok kalendarzowy jako wartość liczbową.
quarterOfFiscalYear Atrybut zawiera kwartał w roku obrotowym jako wartość liczbową. Pierwszy kwartał roku obrotowego ma wartość 1 (jeden); drugi kwartał ma wartość 2 (dwa) i tak dalej.Jeśli rok finansowy ma więcej niż dwanaście miesięcy kalendarzowych, będą istniały okresy podatkowe o tej samej wartości dla kwartału. W takim przypadku można użyć atrybutu fiscalQuarterNumber do weryfikacji.
periodOfFiscalYear Atrybut zawiera okres obrachunkowy w ramach roku obrachunkowego jako wartość liczbową. Pierwszy okres obrachunkowy roku obrachunkowego ma wartość 1 (jeden); drugi okres obrachunkowy ma wartość 2 (dwa) itd.
monthOfFiscalYear Atrybut zawiera miesiąc kalendarzowy w roku obrotowym jako wartość liczbową. Styczeń ma wartość 1 (jeden); luty ma wartość 2 (dwa) itd.Jeśli rok finansowy ma więcej niż dwanaście miesięcy kalendarzowych, będą istniały okresy podatkowe o tej samej wartości dla miesiąca kalendarzowego. W takim przypadku do oceny można użyć atrybutu fiscalPeriodNumber.
weekOfFiscalYear Atrybut zawiera tydzień kalendarzowy w roku obrotowym jako wartość liczbową. Pierwszy tydzień kalendarzowy roku obrotowego ma wartość 1 (jeden); drugi tydzień kalendarzowy ma wartość 2 (dwa) itd.Jeśli rok finansowy ma więcej niż dwanaście miesięcy kalendarzowych, będą istniały okresy podatkowe o tej samej wartości dla tygodnia kalendarzowego. W takim przypadku do oceny można użyć atrybutu fiscalWeekNumber.
lastPeriodOfFiscalYear Atrybut zawiera wartość True, jeśli odpowiedni dzień kalendarzowy wymiaru Day należy do ostatniego okresu obrachunkowego roku obrachunkowego.
firstPeriodOfFiscalQuarter Atrybut zawiera wartość True, jeśli odpowiedni dzień kalendarzowy wymiaru Day należy do pierwszego okresu obrachunkowego kwartału.
lastPeriodOfFiscalQuarter Atrybut zawiera wartość True, jeśli odpowiedni dzień kalendarzowy wymiaru Day należy do ostatniego okresu obrachunkowego kwartału.
lastWeekOfFiscalYear Atrybut zawiera wartość True, jeśli odpowiedni dzień kalendarzowy wymiaru Day należy do ostatniego tygodnia kalendarzowego roku obrotowego.
endOfFiscalPeriod Atrybut zawiera wartość True, jeśli odpowiedni dzień kalendarzowy wymiaru Day jest ostatnim dniem okresu obrachunkowego.

Klasyfikacja

W przeciwieństwie do bazy danych OLTP, wszystkie klasyfikacje są przechowywane w jednej encji biznesowej, com.cisag.app.olap.obj.Classification, w bazie danych OLAP. Wymiar ten można wykorzystać na przykład do analizy statystyk sprzedaży według klasyfikacji pozycji sprzedaży lub klasyfikacji klientów. Klasyfikacje są używane w następujących tabelach wymiarów:

  • Organizacja
  • Klient
  • Artykuły sprzedaży
  • Prognozy sprzedaży
  • Artykuł dotyczący zamówień publicznych
  • Dostawca
  • Prognoza zamówień
  • Perspektywy sprzedaży
  • Partner marketingowy (Kontakt)
  • Konkurencja

Aby analizować statystyki OLAP przy użyciu klasyfikacji, należy połączyć klasyfikację z tabelą wymiaru, która używa klasyfikacji. Poniższy przykład przedstawia klauzulę OQL, która umożliwia analizowanie statystyk sprzedaży dla klasyfikacji pozycji sprzedaży 100-110-120:

Przykład
FROM com.cisag.app.olap.obj.Sales facts

JOIN com.cisag.app.olap.obj.SalesItem item ON

facts:salesItemId = item:id

JOIN com.cisag.app.olap.obj.Classification c1 ON

item:classificationId1 = c1:id

LEFT OUTER JOIN com.cisag.app.olap.obj.Classification c2 ON

item:classificationId2 = c2:id

LEFT OUTER JOIN com.cisag.app.olap.obj.Classification c3 ON

item:classificationId3 = c3:id

WHERE c1:code = '100′ AND c2:code = '110′ AND c3:code = '120′

Uwaga
Dwa łącza do klasyfikacji artykułów sprzedaży 2 i 3 muszą być zdefiniowane jako tak zwane połączenia zewnętrzne, ponieważ odpowiednie pola we wzorcu artykułu nie są polami obowiązkowymi.

Atrybuty tabeli wymiarów, które są istotne dla statystyk OLAP, wyjaśniono poniżej:

Atrybut Wyjaśnienie
id Atrybut zawiera numeryczną identyfikację klasyfikacji. Identyfikacja jest używana w bazie danych OLAP w celu unikalnego odniesienia do klasyfikacji.
guid Atrybut zawiera identyfikator Guid dla odpowiedniej klasyfikacji w bazie danych OLTP.
type Atrybut zawiera przypisanie funkcjonalne klasyfikacji. Na przykład, jeśli wartość pochodzi z Klasyfikacja artykułów sprzedaży 3, atrybut type ma wartość SALESITEM_HIERARCHY3.Możliwe są następujące wartości:·         CUSTOMER_HIERARCHY1 – 9·         SALESITEM_HIERARCHY1 – 5·         SUPPLIER_HIERARCHY1 – 5·         PURCHASEITEM_HIERARCHY1 – 5·         MARKETINGPARTNER_HIERARCHY1 – 5

·         OPPORTUNITY_HIERARCHY1 – 5

Jeśli klasyfikacja reprezentuje organizację, atrybut type zawiera jedną z następujących wartości dla organizacji sprzedaży, organizacji zakupu lub organizacji logistyki magazynowej:

·         SALESORG_HIERARCHY

·         PURCHASINGORG_HIERARCHY

·         INVENTORYORG_HIERARCHY

code Atrybut zawiera kod klasyfikacji, w tym wszystkie foldery wyższego poziomu. Atrybut ten odpowiada zatem atrybutowi ścieżki w bazie danych OLTP.
description Atrybut zawiera nazwę klasyfikacji.
parentId Atrybut zawiera identyfikator folderu nadrzędnego w wymiarze Classification. Jeśli nie ma folderu nadrzędnego, atrybut zawiera wartość liczbową 0 (zero).
parentGuid Atrybut zawiera identyfikator GUID folderu nadrzędnego w wymiarze Classification. Jeśli nie ma folderu nadrzędnego, atrybut zawiera ZERO-GUID, tj. ciąg 32 zer.
level Atrybut zawiera poziom klasyfikacji jako wartość liczbową. Pierwszy poziom ma wartość 1 (jeden), drugi poziom wartość 2 (dwa) i tak dalej.
leaf Jeśli węzeł jest liściem, atrybut zawiera wartość True; jeśli węzeł jest folderem, atrybut zawiera wartość False.
nodes Atrybut tworzy tablicę z kodami pierwszych dziesięciu poziomów klasyfikacji. Atrybutu można użyć do sukcesywnego zawężania zapytania w celu uwzględnienia wartości na poziomie podrzędnym (tzw. drill-down). Jeśli klasyfikacja nie zawiera poziomu, tablica zawiera pusty ciąg znaków.
nodeDescriptions Atrybut tworzy tablicę z nazwami pierwszych dziesięciu poziomów klasyfikacji. Atrybutu można użyć do sukcesywnego zawężania zapytania w celu uwzględnienia wartości na poziomie podrzędnym (tzw. drill-down). Jeśli klasyfikacja nie zawiera poziomu, tablica zawiera pusty ciąg znaków.
nodeGuids Atrybut tworzy tablicę z identyfikatorami pierwszych dziesięciu poziomów klasyfikacji. Atrybutu można użyć do sukcesywnego zawężania zapytania w celu uwzględnienia wartości na poziomie podrzędnym (tzw. drill-down). Jeśli klasyfikacja nie zawiera poziomu, tablica zawiera wartość zero.

Organizacja

Organizacje są przechowywane w jednostce biznesowej com.cisag.app.olap.obj.OrganizationalUnit. Wymiar ten można wykorzystać na przykład do oceny statystyk sprzedaży według organizacji sprzedaży lub firmy.

Atrybuty tabeli wymiarów, które są istotne dla statystyk OLAP, wyjaśniono poniżej:

Atrybut Wyjaśnienie
id Atrybut zawiera numeryczną identyfikację organizacji. Identyfikacja jest używana w bazie danych OLAP w celu unikalnego odniesienia do organizacji.
przewodnik Atrybut zawiera identyfikator Guid odpowiedniej organizacji w bazie danych OLTP.
kod Atrybut zawiera kod organizacji bez organizacji nadrzędnych.
opis Atrybut zawiera nazwę organizacji.
financialOrganisationalUnit Atrybut zawiera identyfikator Guid firmy, do której przypisana jest organizacja.
salesClassificationId Jeśli organizacja jest organizacją sprzedaży, atrybut zawiera identyfikator odpowiedniej klasyfikacji. Klasyfikacja jest typu SALESORG_HIERARCHY i zawiera pełną ścieżkę organizacji sprzedaży w atrybucie code.Jeśli organizacja nie jest organizacją sprzedaży, atrybut zawiera wartość 0 (zero).
purchasingClassificationId Jeśli organizacja jest organizacją zakupową, atrybut zawiera identyfikator odpowiedniej klasyfikacji. Klasyfikacja jest typu PURCHASINGORG_HIERARCHY i zawiera pełną ścieżkę organizacji zakupowej w atrybucie code.Jeśli organizacja nie jest organizacją zakupową, atrybut zawiera wartość 0 (zero).
inventoryClassificationId Jeśli organizacja jest organizacją magazynową, atrybut zawiera identyfikator odpowiedniej klasyfikacji. Klasyfikacja jest typu INVENTORYORG_HIERARCHY i zawiera pełną ścieżkę organizacji magazynu w atrybucie code.Jeśli organizacja nie jest organizacją magazynową, atrybut zawiera wartość 0 (zero).
financialOrganisation Jeśli organizacja jest spółką, atrybut zawiera wartość True.

Dzień

Tabeli wymiarów Day można użyć do przypisania faktów statystycznych do dnia kalendarzowego. Tabeli wymiarów nie można aktualizować bezpośrednio za pomocą aplikacji działającej w tle Aktualizuj wymiary statystyczne. Wszelkie brakujące lata kalendarzowe są automatycznie dodawane do tabeli wymiarów za każdym razem, gdy aktualizowane są lata finansowe lub fakty statystyczne. Oznacza to, że wszystkie dni kalendarzowe od 1 stycznia do 31 grudnia są generowane automatycznie podczas pierwszego transferu w nowym roku kalendarzowym.

Dni kalendarzowe są zapisywane w jednostce biznesowej com.cisag.app.olap.obj.Day. Atrybuty tabeli wymiarów, które są istotne dla statystyk OLAP, wyjaśniono poniżej:

Atrybut Wyjaśnienie
id Atrybut zawiera numeryczną identyfikację dnia kalendarzowego. Identyfikacja jest używana w bazie danych OLAP w celu unikalnego odniesienia do dnia kalendarzowego.
data Atrybut zawiera dzień kalendarzowy jako znacznik czasu.Wszystkie znaczniki czasu są pobierane z bazy danych OLTP bez strefy czasowej. Po przesłaniu do bazy danych OLAP, strefa czasowa klienta jest dodawana do znacznika czasu. Jeśli na przykład faktura wychodząca ma datę dokumentu 01.10.2005 00:00:00 MSK (czasu moskiewskiego), to dokument ten pojawia się w statystykach z datą faktury 01.10.2005 00:00:00 CET, jeśli dla klienta zapisana jest środkowoeuropejska strefa czasowa. Ten symboliczny widok daty umożliwia widok niezależny od strefy czasowej i zapewnia te same wyniki zapytania niezależnie od strefy czasowej przeglądarki.Sterownik Semiramis ODBC dostarcza również datę jako skoordynowany czas uniwersalny (UTC lub Universal Time Coordonné) w wirtualnym atrybucie date_gmt. Format ten jest oparty na południku zerowym przechodzącym przez Greenwich. Czas środkowoeuropejski (CET) odpowiada zatem UTC plus jedna godzina. W okresie letnim CET wyprzedza UTC o dwie godziny. Należy pamiętać, że atrybut date_gmt może mieć inną wartość niż atrybut dayOfMonth, jeśli strefa czasowa nie jest brana pod uwagę.Dni kalendarzowe sprzed 1 stycznia 1970 r. nie są dozwolone.
yearNumber Atrybut zawiera kolejny numer identyfikujący rok kalendarzowy.
quarterNumber Atrybut zawiera kolejny numer identyfikujący kwartał we wszystkich latach kalendarzowych.
monthNumber Atrybut zawiera kolejny numer identyfikujący okres finansowy we wszystkich latach kalendarzowych.
weekNumber Atrybut ten zawiera kolejny numer identyfikujący tydzień kalendarzowy we wszystkich latach kalendarzowych.
dayNumber Atrybut zawiera kolejny numer identyfikujący dzień kalendarzowy we wszystkich latach kalendarzowych.
rok Atrybut zawiera rok kalendarzowy jako wartość liczbową.
quarterOfYear Atrybut zawiera kwartał w roku kalendarzowym jako wartość liczbową. Pierwszy kwartał roku ma wartość 1 (jeden); drugi kwartał ma wartość 2 (dwa) i tak dalej.
monthOfYear Atrybut zawiera miesiąc kalendarzowy w roku kalendarzowym jako wartość liczbową. Styczeń ma wartość 1 (jeden); luty ma wartość 2 (dwa) i tak dalej.
weekOfYear Atrybut zawiera tydzień kalendarzowy w roku kalendarzowym jako wartość liczbową. Pierwszy tydzień kalendarzowy roku ma wartość 1 (jeden); drugi tydzień kalendarzowy ma wartość 2 (dwa) i tak dalej.
dayOfMonth Atrybut zawiera dzień kalendarzowy w miesiącu kalendarzowym jako wartość liczbową. Pierwszy dzień kalendarzowy miesiąca ma wartość 1 (jeden); drugi dzień kalendarzowy ma wartość 2 (dwa) i tak dalej.
dayOfWeek Atrybut zawiera dzień tygodnia w ramach tygodnia kalendarzowego jako wartość liczbową. Poniedziałek ma wartość 1 (jeden); wtorek ma wartość 2 (dwa) i tak dalej.
lastWeekOfYear Atrybut zawiera wartość True, jeśli tydzień kalendarzowy jest ostatnim tygodniem roku kalendarzowego.
endOfMonth Atrybut zawiera wartość True, jeśli dzień kalendarzowy jest ostatnim dniem miesiąca kalendarzowego.

Czy ten artykuł był pomocny?