Amazon cloudformation 在查询字符串中替换变量
此模板正在按预期工作。但是当我把它改为函数替换时,它抛出了一个错误 工作模板:Amazon cloudformation 在查询字符串中替换变量,amazon-cloudformation,Amazon Cloudformation,此模板正在按预期工作。但是当我把它改为函数替换时,它抛出了一个错误 工作模板: Parameters: MyS3Bucket: Type: String Resources: createTableOriginalCsv: Type: 'AWS::Athena::NamedQuery' Properties: Database: default Description: First query to create table based o
Parameters:
MyS3Bucket:
Type: String
Resources:
createTableOriginalCsv:
Type: 'AWS::Athena::NamedQuery'
Properties:
Database: default
Description: First query to create table based on AWS bucket data
Name: Blog1CreateTableOriginalCsv
QueryString: >-
CREATE table new_parquet11 WITH (format='PARQUET',
parquet_compression='SNAPPY', partitioned_by=array['year'],
external_location = 's3://MyS3Bucket/optimized-data11/') AS SELECT
id, date, element, datavalue, mflag, qflag, sflag, obstime,
substr("date",1,4) AS year FROM original_csv WHERE
cast(substr("date",1,4) AS bigint) >= 2015 AND cast(substr("date",1,4)
AS bigint) <= 2019
参数:
MyS3Bucket:
类型:字符串
资源:
createTableOriginalCsv:
类型:“AWS::Athena::NamedQuery”
特性:
数据库:默认值
Description:基于AWS bucket数据创建表的第一个查询
名称:Blog1CreateTableOriginalCsv
查询字符串:>-
使用(format='PARQUET',创建表格new_parquet11,
拼花地板的压缩率=快,分区率=阵列['year'],
外部位置='s3://MyS3Bucket/optimized-data11/')作为选择
id、日期、元素、数据值、mflag、qflag、sflag、obstime、,
子项(“日期”,1,4)为自原始csv起的年份,其中
演员阵容(子名单(“日期”,1,4)为bigint)>=2015,演员阵容(子名单(“日期”,1,4)
AS bigint)=2015年和演员阵容(子名单(“日期”,1,4)
作为bigint)警告:
E1019 Sub应该是资源/createTableOriginalCsv/Properties/QueryString/Fn::Sub的2个数组
因为要么需要两个元素的列表(一个字符串和一个变量映射),要么只需要一个字符串。您可以通过删除第一个-
,使其不再是包含一个字符串的列表,从而使其成为字符串:
QueryString: !Sub
|-
CREATE table new_parquet11 WITH (format='PARQUET',
parquet_compression='SNAPPY', partitioned_by=array['year'],
external_location = 's3://${MyS3Bucket}/optimized-data11/') AS SELECT
id, date, element, datavalue, mflag, qflag, sflag, obstime,
substr("date",1,4) AS year FROM original_csv WHERE
cast(substr("date",1,4) AS bigint) >= 2015 AND cast(substr("date",1,4)
AS bigint) <= 2019
QueryString:!附属的
|-
使用(format='PARQUET',创建表格new_parquet11,
拼花地板的压缩率=快,分区率=阵列['year'],
外部位置='s3://${MyS3Bucket}/optimized-data11/')作为选择
id、日期、元素、数据值、mflag、qflag、sflag、obstime、,
子项(“日期”,1,4)为自原始csv起的年份,其中
演员阵容(子名单(“日期”,1,4)为bigint)>=2015,演员阵容(子名单(“日期”,1,4)
AS bigint)
QueryString: !Sub
|-
CREATE table new_parquet11 WITH (format='PARQUET',
parquet_compression='SNAPPY', partitioned_by=array['year'],
external_location = 's3://${MyS3Bucket}/optimized-data11/') AS SELECT
id, date, element, datavalue, mflag, qflag, sflag, obstime,
substr("date",1,4) AS year FROM original_csv WHERE
cast(substr("date",1,4) AS bigint) >= 2015 AND cast(substr("date",1,4)
AS bigint) <= 2019