Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

autonumberhash128 — funkcja skryptu

Ta funkcja skryptu oblicza 128-bitowy skrót połączonych wartości wyrażenia wejściowego oraz zwraca niepowtarzalną wartość całkowitą dla każdej odrębnej wartości skrótu napotkanej podczas wykonywania skryptu. Ta funkcja może zostać użyta np. w celu utworzenia kompaktowej reprezentacji klucza złożonego w pamięci.

InformacjaMożna łączyć tylko te klucze autonumberhash128, które zostały wygenerowane w tym samym ładowaniu danych, ponieważ liczba całkowita jest generowana zgodnie z kolejnością odczytu tabeli. Aby użyć kluczy stałych w różnych ładowaniach danych, niezależnie od sortowania danych źródłowych, należy skorzystać z funkcji hash128, hash160 lub hash256.

Składnia:  

autonumberhash128(expression {, expression})

Przykład: Tworzenie klucza złożonego

W tym przykładzie utworzymy klucz złożony przy użyciu funkcji autonumberhash128 w celu ochrony pamięci. Na potrzeby prezentacji przykład jest krótki, ale funkcja ta sprawdza się szczególnie w przypadku tabel zawierających wiele wierszy.

Przykładowe dane
Region Year Month Sales
North 2014 May 245
North2014May347
North2014June127
South2014June645
South2013May367
South2013May221

Dane źródłowe są ładowane przy użyciu danych wbudowanych. Następnie dodajemy ładowanie poprzedzające, które tworzy klucz złożony z pól Region, Year i Month.

RegionSales: LOAD *, AutoNumberHash128(Region, Year, Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Sales North, 2014, May, 245 North, 2014, May, 347 North, 2014, June, 127 South, 2014, June, 645 South, 2013, May, 367 South, 2013, May, 221 ];

 

Wynikowa tabela wygląda następująco:

Tabela wynikowa
Region Year Month Sales RYMkey
North 2014 May 245 1
North2014May3471
North2014June1272
South2014June6453
South2013May3674
South2013May2214

Aby połączyć kolejną tabelę, w tym przykładzie można odwołać się do klucza RYMkey, na przykład 1, zamiast do ciągu znaków „North2014May”.

Teraz w podobny sposób ładujemy źródłową tabelę kosztów. Pola Region, Year i Month są wykluczone w ładowaniu poprzedzającym, aby uniknąć tworzenia klucza syntetycznego. Tworzony jest już bowiem klucz złożony z funkcją autonumberhash128, łączący tabele.

RegionCosts: LOAD Costs, AutoNumberHash128(Region, Year, Month) as RYMkey; LOAD * INLINE [ Region, Year, Month, Costs South, 2013, May, 167 North, 2014, May, 56 North, 2014, June, 199 South, 2014, June, 64 South, 2013, May, 172 South, 2013, May, 126 ];

 

Teraz możemy dodać do arkusza wizualizację tabeli oraz pola Region, Year i Month, jak również miary Sum dla sprzedaży i kosztów. Tabela będzie wyglądać następująco:

Tabela wynikowa
Region Year Month Sum([Sales]) Sum([Costs])
Totals - - 1952 784
North2014June127199
North2014May59256
South2014June64564
South2013May588465

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!