私はこのクエリを持っています:
SHOW PARTITIONS tablename;
結果は次のとおりです。
dt=2018-01-12
dt=2018-01-20
dt=2018-05-21
dt=2018-04-07
dt=2018-01-03
これにより、テーブルごとのパーティションのリストが表示されます。このテーブルのパーティションフィールドは、日付列であるdt
です。注文されたパーティションを見たいのですが。
ドキュメントにはその方法が説明されていません: https://docs.aws.Amazon.com/athena/latest/ug/show-partitions.html
私は次の方法で注文を追加しようとしました:
SHOW PARTITIONS tablename order by dt;
しかし、それは与えます:
AmazonAthena;ステータスコード:400;エラーコード:InvalidRequestException;
同じ問題に直面し、information_schema
データベースで解決策を見つけました。テーブルにパーティション列が1つしかない場合は、次のクエリを使用して順序付きリストを取得します。
SELECT partition_value
FROM information_schema.__internal_partitions__
WHERE table_schema = '<DB_NAME>'
AND table_name = '<TABLE_NAME>'
ORDER BY partition_value
From あなたのコメント 特定のパーティションが存在するかどうかを判断する方法として、パーティションを並べ替えようとしているようです。この目的のために、Athenaにクエリを実行する代わりにGlueAPIを使用することをお勧めします。 aws glue get-partition help
を実行するか、お好みのSDKのドキュメントでその動作を確認してください。
テーブルのすべてのパーティションを一覧表示するバリアントもあります。aws glue get-partitions help
を実行して詳細を確認してください。アルファベット順にパーティションを返すとは思いませんが、フィルタリング用の演算子があります。