2017-03-14 10 views
1

AthenaはS3テーブルのフィールドを使用してテンポラリテーブルを作成します。 JSONデータを使用してこれを行っています。寄木細工データを使用してテーブルを作成する方法について教えてください。Amazon Athenaの寄木細工データを照会する方法は?

私は、次の試してみました:

  1. を寄木細工のデータにサンプルJSONデータにコンバート。
  2. S3に寄木細工データをアップロードしました。
  3. JSONデータの列を使用してテンポラリテーブルを作成しました。

これを実行すると、実行クエリを実行できますが、結果は空です。

このアプローチは正しいのですか、または寄木細工のデータに従う他のアプローチはありますか?

サンプルJSONデータ:

{"_id":"0899f824e118d390f57bc2f279bd38fe","_rev":"1-81cc25723e02f50cb6fef7ce0b0f4f38","deviceId":"BELT001","timestamp":"2016-12-21T13:04:10:066Z","orgid":"fedex","locationId":"LID001","UserId":"UID001","SuperviceId":"SID001"}, 
{"_id":"0899f824e118d390f57bc2f279bd38fe","_rev":"1-81cc25723e02f50cb6fef7ce0b0f4f38","deviceId":"BELT001","timestamp":"2016-12-21T13:04:10:066Z","orgid":"fedex","locationId":"LID001","UserId":"UID001","SuperviceId":"SID001"} 
+0

あなたのAthenaテーブル定義を共有してください。寄木細工のファイルを生成するためにどのツールを使用しましたか? – James

+0

'SELECT * FROM foo LIMIT 5'を実行すると、データを返しますか?そうでない場合、テーブル定義は無効です。 –

答えて

1

あなたのデータが正常に寄せ木形式で保存されている場合、あなたはその後、それらのファイルを参照するテーブル定義を作成します。この例では、アマゾンアテナに圧縮し、分割されたデータを使用することの利点を説明するの優れた仕事をしてAWSのブログ記事Analyzing Data in S3 using Amazon Athenaから取られた

CREATE EXTERNAL TABLE IF NOT EXISTS elb_logs_pq (
    request_timestamp string, 
    elb_name string, 
    request_ip string, 
    request_port int, 
    ... 
    ssl_protocol string) 
PARTITIONED BY(year int, month int, day int) 
STORED AS PARQUET 
LOCATION 's3://athena-examples/elb/parquet/' 
tblproperties ("parquet.compress"="SNAPPY"); 

:ここ

は寄せ木ファイルを使用する例文です。

0

手順:
1.
3( 'LOCATION' テーブルで作成されたJSONファイルの存在を確認)my_table_jsonにあなたのmy_table_json
2.挿入データを作成しますcreate my_table_parquet: 'STORED AS PARQUET'句を追加する必要があることを除いて、my_table_jsonと同じcreate文。
4. 実行:INSERT INTO my_table_parquet SELECT * FROM my_table_json

2

あなたのテーブル定義が有効であるが、任意の行になっていない、この

をしよう - MSCKのREPAIR TABLEコマンドは、テーブルにすべてのパーティションをロードします。 - このコマンドは、ロードするパーティションの数に応じて実行に時間がかかります。

MSCK修復テーブル{tablename}

関連する問題