在AWS雅典娜实例中,我们有几个用户创建的视图。
我想支持你的观点。
一直在使用AWS CLI进行实验
aws athena start-query-execution --query-string “show views...
对于每一个视图
aws athena start-query-execution --query-string “show create views...
然后
aws athena get-query-execution --query-execution-id...
若要获取创建视图代码的s3位置,请执行以下操作。
寻找备份视图定义的方法。
如果AWS是最好的建议,那么我将创建一个Lambda来执行备份。
发布于 2021-03-14 01:29:25
我认为显示视图是最好的选择。
然后,您可以使用显示创建视图获得数据定义语言(DDL)。
有几种方法可以支持这些观点。您可以使用GIT (AWS提供CodeCommit)。您肯定可以使用CodeCommit在Lambda函数中使用Boto3。
事实上,只要检查DDL,实际上就是将它们备份到S3。
考虑以下DDL:
CREATE EXTERNAL TABLE default.dogs (
`breed_id` int,
`breed_name` string,
`category` string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION
's3://stack-exchange/48836509'
TBLPROPERTIES ('skip.header.line.count'='1')以及以下基于它的视图。
CREATE VIEW default.vdogs AS SELECT * FROM default.dogs;当我们显示DDL时:
$ aws athena start-query-execution --query-string "SHOW CREATE VIEW default.vdogs" --result-config
uration OutputLocation=s3://stack-exchange/66620228/
{
"QueryExecutionId": "ab21599f-d2f3-49ce-89fb-c1327245129e"
}我们写信给S3 (就像任何雅典娜查询一样)。
$ cat ab21599f-d2f3-49ce-89fb-c1327245129e.txt
CREATE VIEW default.vdogs AS
SELECT *
FROM
default.dogshttps://stackoverflow.com/questions/66616243
复制相似问题