2017-09-07 13 views
0

OLTPシステムは正規化されており、何百ものテーブルが含まれています。レポートをデザインする際に、多くのテーブルに参加する必要があるかもしれません。たとえば、顧客の電子メールアドレスを取得するには、4つまたは5つのテーブルに参加する必要があります。 (我々が使用している通信モデルのおかげで)ビッグデータで複雑な結合を処理する

私はhdfs(またはs3かもしれない)にデータウェアハウスを設計しようとしています。

emaillアドレスとカスタムIDをハイブ上のテーブルに書き込むには: sqoop importコマンドを使用して5つのテーブルの全データをhdfsに展開する必要があります。それから私はハイブでこれらのテーブルに参加する必要があります。このプロセスは、そのような電子メール情報を得るために長く続くかもしれません。

または、sqoop queryコマンドを使用してデータをインポートすることがあります。これは簡単でhdfsのスペースを少なくしますが、この場合はクエリの実行時間が重要です。

似たような状況であなたの選択は何ですか?代わりの方法がありますか?

は、あなたがあなたのスキーマをdenormalising検討すべきであるあなたに

答えて

0

ありがとうございます。例えば。 sqoopを使用してハイブに必要な可能性のあるすべての表をインポートし、スタースキーマに非正規化するETLプロセスを準備し、問合せに非正規化された新しいスキーマを使用します。

など。電子メールがフィールドの1つにすぎない「顧客」テーブルを目指すべきです。

関連する問題