2017-07-18 18 views
2

ファイルがHive外部テーブルの列としてHDFSフォルダにドロップされた時刻を追加する必要があるという要件があります。ファイルの最終更新日をHive外部テーブルに追加

例:私は2つのファイルが、そう

  • 2017年7月13日15時22分
  • 2017年12月13日18時31分

上で私のlast_modified列を落としていハイブテーブルはファイル1のすべての行に対して2017-07-13 15:22を、ファイル2には2017-12-13 18:31を反映する必要があります。

外部テーブル作成ステートメントでこれを実現する方法はありますか?

ありがとうございました!

答えて

0

あなたの問題を解決するためのこのような機能はありません。ただし、別の列にファイルあたりの最終更新時間を維持するための手順の下に試してみることができます。

  • last_modified列のパーティションテーブルを作成します。

    CREATE EXTERNAL TABLE test (record string) PARTITIONED BY 
    (last_modified string) location '<warehouse_location>/test.db/test' 
    
  • 各ファイルについて、新しいパーティションをテーブルに追加するか、またはinsert文を使用してパーティションに追加します。

    ALTER TABLE test ADD PARTITION (last_modified='2017-07-13 15:22') 
    location '<data-location>/newfile1/'; 
    

    パーティションテーブルにデータを挿入し、新しいファイルに別々の一時テーブルを作成します。

    CREATE EXTERNAL TABLE tmp (record strin) location '<new data location>' 
    
    INSERT INTO TABLE test PARTITION (
    last_modified = '2017-07-13 15:22') SELECT record FROM tmp; 
    
関連する問題