メイン コンテンツをスキップする 補完的コンテンツへスキップ

autonumberhash256 - スクリプト関数

このスクリプト関数は、複合入力式の値の 256 ビット ハッシュ値を計算し、スクリプトの実行中に発生する個々のハッシュ値について一意の整数値を返します。この関数は、複合キーのコンパクト メモリ表示を作成する場合などに使用します。

情報メモautonumberhash256キーは、テーブルが読み込まれた順番で生成されるため、同じデータ ロードで生成された場合のみ結合できます。ソース データのソート処理から独立してデータ ロード間で恒久的に維持されるキーを使用する必要がある場合は、hash128 関数、hash160 関数、hash256 関数を使用する必要があります。

構文:  

autonumberhash256(expression {, expression})

 

複合キーの作成

この例では、メモリを保護するために、autonumberhash256 関数を使用して複合キーを作成します。この例は、デモのために、簡略化したものになっていますが、この方法が効果的なのは、多数の行が含まれるテーブルで使用した場合です。

テーブルの例
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

インライン データを使用して、ソース データをロードします。次に、Region項目、Year項目、Month 項目から複合キーを作成する先行する Load を作成します。

RegionSales: LOAD *, AutoNumberHash256(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 ];

 

この結果、テーブルは次のようになります。

結果テーブル
Region Year Month Sales RYMkey
North 2014 May 245 1
North 2014 May 347 1
North 2014 June 127 2
South 2014 June 645 3
South 2013 May 367 4
South 2013 May 221 4

この例では、別のテーブルにリンクする必要がある場合、たとえば、文字列 "North2014May" の代わりに RYMkey の 1 を参照できます。

同様の方法で、Costs のソース テーブルをロードします。Region 項目、Year 項目、Month 項目は、autonumberhash256 関数を使用しテーブルをリンクしてすでに複合キーを作成しているため、合成キーの作成を避けるために先行する Load から除外されます。

RegionCosts: LOAD Costs, AutoNumberHash256(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 ];

 

テーブル ビジュアライゼーションをシートに追加し、Region 項目、Year 項目、Month 項目、および Sales と Costs の Sum メジャーを追加できるようになりました。テーブルは次のようになります。

結果テーブル
Region Year Month Sum([Sales]) Sum([Costs])
Totals - - 1952 784
North 2014 June 127 199
North 2014 May 592 56
South 2014 June 645 64
South 2013 May 588 465

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。