amazon athenaでテーブルを作成しました。私は自分のデータをCSVファイル(2010年から2015年のデータを持つ1つの大きなファイル)として持っています。これはs3では分割されていません。私はathenaでパーティションを作成しようとしていますが、パーティションは結果を引き出すわけではありません。Amazon Athenaでパーティションが結果を返さない
ステップ1:このステップ2の後アテナ
CREATE EXTERNAL TABLE IF NOT EXISTS DATABASE.table1 (
NULL string,
OrderID string,
CustomerID string,
EmailAddress string
)
PARTITIONED BY (OrderDate STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'quoteChar' = '"',
'field.delim' = ','
) LOCATION 's3://XYZ/Orders/'
TBLPROPERTIES ('has_encrypted_data'='false');
のテーブル作成手動読み込みパーティションを(私の受注日形式は、MM/DD/YY時間分である)は、そのパーティションが有する言う
ALTER TABLE table1 ADD PARTITION (orderdate='01/01/2010 00:00') location 's3://xyz/Orders/'
正常に作成されましたが、これに対してクエリを実行しても結果が得られません。間違った方法でパーティションを作成していますか?なぜ結果を返さないのですか?どんな助けもありがとうございます。
下記のコメントを試した後、注文日時を使用してデータをクエリするとまだ結果を取得できません。ファイルのパスがこのように見えるアテナ(2年分の2つの別々のファイル)にファイルを再度アップロードしました。
s3://xyz/Orders/year/orders+2010.csv
s3://xyz/Orders/year/orders+2014.csv
これを実行した後でも、パーティションとクエリデータに日付範囲を使用することができません。
..Thanku問題を解決するために、なぜ私は結果を得ることができなかったのかを今完全に理解しています。私はもう一つの疑問を持っています。私の日付形式はmm-dd-yyyy hrs-minですが、athenaは他の日付形式です。毎年別々の日付範囲でs3にすべてのデータを再読み込みすると、データに違いはありませんか? – jsingh
質問のテーブル定義はDateフィールドをStringとして扱っているようですので、クエリが格納されているフォーマットと一致する限り、どのフォーマットを使用しても問題ありません。ただし、日付を操作する場合(過去5日間のデータの選択など)は、実際の日付フィールドとして定義する方がよいでしょう。 –
... opencsvserdeで文字列以外のデータ型を使用すると、解析エラーが発生します。だから私はその解決策が何であるか分からない。 – jsingh