2016-06-24 17 views
1

私はハイブテーブルを持っていますtable_permは100万行あります。日常の新しいデータは、別のハイブテーブルのtable_tempからこのテーブルに追加されます。ハイブテーブルのユニークな値を見つける

のは、表は以下の通りとしましょう:

table_perm id,col2,col3,ts 1,a,b,t1 2,d,e,t1 3,g,h,t1 4,j,k,t2 5,a,e,t2 6,h,d,t2

table_temp id,col2,col3,ts 6,h,k,t3 7,d,r,t3 8,a,h,t3 9,t,q,t3

と私の最終的な出力は非常に基本的には、 id,col2,col3,ts 1,a,b,t1 2,d,e,t1 3,g,h,t1 4,j,k,t2 5,a,e,t2 6,h,k,t3 7,d,r,t3 8,a,h,t3 9,t,q,t3

する必要がありますIDが一意で、データを追加する場合は、ここで検証する必要があります。 idが一意でない場合は、最新のレコードを追加します。

table_permが巨大であることを考慮して、ユニークなid値を見つけてtable_permに挿入するにはどうすればよいでしょうか。idの各値が冗長になる可能性があります。

P.S. :カラムtsはタイムスタンプで、増分更新は毎日1回発生します。 table_permは巨大です。

+0

のためには、あなたの質問は何ですか?データは正しく追加されていますか? –

+0

@ GordonLinoff:質問を更新しました。 – user2810706

答えて

0

ベストウェイティング方法は です。idにtable_perm join table_tempを実行します。 次に、tsをチェックしてフィールドを選択します。 Data.Hiveのサイズについて

select table_perm.id,IF(table_perm.ts>table_temp.ts,table_perm.col2,table_temp.col2), IF(table_perm.ts>table_temp.ts,table_perm.col3,table_temp.col3) 
from table_perm join table_perm on table_perm.id=table_perm.id 

Donn't心配はビッグデータ・アプリケーション

+0

これはプロセス全体を本当に遅くします...私は15列あり、すべての列が多くの時間を取ることを確認します。 – user2810706

+0

あなたのアプリケーションはリアルタイム処理を行っていますか?もしそうなら、ハイブを使用することはあなたのユースケースにとって有効なツールではありません。リアルタイムではない場合は、データと時間を心配しないでください –

+0

いいえ私たちはリアルタイム処理を行っていません。しかしこのデータはプレゼンテーションテーブルに入り、SAS VAの上で分析を行います。私たちは、プロセス全体を10分以内にすることを目標にしています。 – user2810706

関連する問題