带aws数据管道的默认datetime

vngu2lb8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(423)

我们使用数据管道将数据从s3推送到amazonredshift表。我们使用json推送数据

{
"jsonpaths": [
    "$['data1']",
    "$['data1']",
    "$['data1']['data1']",
    "$['data1']['data1']",
    "$['data1']['data1']",
    "$['data1']['data1']",
    "$['data1']",
    "$['data1']",
    "$['data1']",
    "$['data1']['data1']",
    "$['data1']['data1']"
 ]}

我最近想在我的红移表中添加created\u at,它应该使用当前的时间戳。我已经在我的红移表中添加了默认值为当前时间戳的列。我没有在这个列的jsonMap文件中定义(原因很明显)。但管道无法说明列数和jsonMap不匹配。我试过阅读多个文档,但没有找到合适的解决方案。有谁能帮助我如何使用aws数据管道从s3向redshift表插入默认的当前时间戳吗?

lnlaulya

lnlaulya1#

有选择的余地 copy 命令来指定要填充数据的列,我们在etl中使用这些列来填充任何 default 的值 skipped columns .

COPY my_tablename
    (C1  
    ,C2   
    ,C3,...    
  )
    FROM 's3://<<YOUR-BUCKET>>/<<YOUR-FILE>>'
    credentials 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret- access-key>';

所以我可以在下面这样的管道中应用同样的方法,虽然我没有测试过这个解决方案,

copy My_table(C1,C2,C3,...)
from 's3://mybucket/category_object_paths.json'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
json 's3://mybucket/category_jsonpath.json';

评论后编辑
transformSql 您可以使用的选项 RedshiftCopyActivity 复制选定列。
这是参考资料,http://docs.aws.amazon.com/datapipeline/latest/developerguide/dp-object-redshiftcopyactivity.html

相关问题