The Doppler Quarterly (日本語) 秋 2017 - Page 29

す。また、行インデックスによって特定の 1 万行に検索を絞るこ とができ、読み込みのパフォーマンスを向上できます。各ストラ イプ内では列が互いに分離されているため、リーダーは必要な 列のみを読み込むことができます。 ゆっくりと変化する Hive のディメンション ゆっくりと変化するディメンションの管理は、データウェアハウ スにおいて最も重要なプロセスの 1 つです。ゆっくりと変化する ディメンションの典型的な例は、新しい住所に引っ越したばか りの顧客です。データウェアハウスには以前の住所での顧客の 対してファイル内のどのストライプを読み込むかを判断できま 形式に分割されます。インデックスを構築して、特定のクエリに インデックスデータ ストライプフッター 列 3 インデックスデータ 列 4 レコードがあるものの、同じ顧客に対する新しい住所での別の レコードがトランザクションシステムによって作成されます。 分析システムでこのような状況に対応する最も一般的な 2 つの アプローチは、 SCD ( ゆっくりと変化するディメンション ) タイ プ I およびタイプ II と呼ばれます。 タイプ I 戦略は、既存のディメンション属性に新しい情報を上 書きすることです。この例でいえば、以前の住所を新しい住所 で上書きし、顧客の履歴情報を保持することは考えません。 タイプ II の変更では新しい属性情報によるレコードを作成し、 以前のディメンションデータのレコードを保存します つまり、 新しい住所情報のレコードを挿入し、そのレコードを顧客のア 列 1 インデックスデータ ~200MB Apache Hive に最適なファイル形式として、最初は ORC をお 勧めしています。ORC ファイルは、互いに独立したストライプ 列 2 列 3 行データ 列 4 列 5 列 6 ストライプフッター 列 7 列 8 行データ 列 1 列 2 列 5 列 6 行データ 列 7 ストライプフッター 列 8 ファイルフッター PostScript 図 3: ORC ファイル構造 クティブレコードに設定し、以前の顧客レコードを非アクティブ 化します。これにより、顧客の住所変更の完全な履歴をいつで も確認できます。 Hive で SCD タイプ II を実装するための戦略 Hive と Hadoop は 1 度の書き込みと複数の読み込みパター ンに対して最適化されています。通常、 SCD II などの更新が必 要な設計は、このようなシステムに適しているとは言えません。 しかし、このようなシナリオをサポートするための機能が徐々 分に大きくなると、メジャー圧縮によってベースが書き直され、 これらのより大規模な差分が組み込まれます。 Hive のセキュリティと Ranger Apache Hive は、現在 2 つの方法で認証を提供しています。ス トレージベースの認証と SQL 標準認証です。SQL 標準認証 に追加されてきています。 は、データベース管理者には馴染みのあるコマンドを使用して、 SCD II を実装するには、 Hive で ACID トランザクションを有 供しています。より詳細な制御が必要な場合は、より粒度の高 効にする必要があります。現在、 Hive で ACID トランザクショ ンをサポートしているファイル形式は ORC のみです。ORC は データベースおよび表レベルの GRANT/REVOKE 機能を提 いアクセス制御を提供する Apache Ranger を使用できます。 1 度きりの書き込みのファイル形式であるため、変更はベース ファイルと、挿入、更新、削除オペレーションが記録されている 差分ファイルを使用して実装されます。差分の数がしきい値を 超えた場合、マイナー圧縮が自動的に実行され、一連の変更 が単一の差分に結合されます。これらの圧縮された差分が十 2017 年秋号 | THE DOPPLER | 27