[英]AWS Athena Partitioning
我已經閱讀了 Athena 中的分區數據,但是當 S3 具有以下結構時,尚不清楚如何為表創建分區:
aws s3 ls s3://xxx-s3-zzz-datalake-prod/yyy/2022/09/
PRE 01/
PRE 02/
PRE 03/
PRE 04/
PRE 05/
PRE 06/
etc...
我怎樣才能為這種結構創建分區,這可能嗎? 或者我應該將其重命名為
aws s3 ls s3://xxx-s3-yyy-datalake-prod/zzz/2022/09/
PRE day=01/
PRE day=02/
PRE day=03/
etc...
然后添加PARTITIONED BY (day int)
?
在這兩種情況下都可以添加分區,在這些情況下您必須使用不同的方法。如果您有以下格式的數據:
aws s3 ls s3://xxx-s3-zzz-datalake-prod/yyy/2022/09/
PRE 01/
PRE 02/
PRE 03/
PRE 04/
PRE 05/
PRE 06/
etc...
然后,您只能使用以下查詢將這些分區信息添加到表中:
ALTER TABLE orders ADD
PARTITION (day = '01') LOCATION 's3://xxx-s3-zzz-datalake-prod/yyy/2022/09/01'
PARTITION (day = '02') LOCATION 's3://xxx-s3-zzz-datalake-prod/yyy/2022/09/02';
有關更多信息,請參閱下面的鏈接。
https://docs.aws.amazon.com/athena/latest/ug/alter-table-add-partition.html
還可以嘗試通過在 PARTITIONED BY 子句中添加年份和月份來向表中添加更多分區,因為僅添加一天不會有任何好處。
在以下結構的情況下,它很簡單:
aws s3 ls s3://xxx-s3-yyy-datalake-prod/zzz/2022/09/
PRE day=01/
PRE day=02/
PRE day=03/
etc...
在這里,您可以運行MSCK REPAIR TABLE <table-name>
,它將自動使用分區信息填充表,因為結構采用 Hive 鍵值支持格式。同樣的信息也可以通過 Glue 爬蟲添加。
下面的鏈接對 hive 樣式和非 hive 樣式分區格式有更多說明。
https://aws.amazon.com/premiumsupport/knowledge-center/athena-create-use-partitioned-tables/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.