我正在尝试以递归方式将数据从redshift卸载到每个运行的不同文件夹中的S3存储桶中。有没有办法从redshift卸载命令执行此操作?
卸载('select * from venue') 到's3:// mybucket / tickit / venue_' iam_role'arn:aws:iam :: 0123456789012:role / MyRedshiftRole' 清单;
我希望s3存储桶有这个子文件夹:
S3:// mybucket / TickIT审核/ venue_12 / venue_0000_part_00 S3:// mybucket / TickIT审核/ venue_21 / venue_0000_part_00 s3:// mybucket / tickit / venue_34 / venue_0000_part_00
这个场所_ *其中*来自卸载命令中的选择查询
答案 0 :(得分:0)
您必须设计一个包含表列表的元数据表,并在元数据表中根据需要添加条件。 1.借助python /其他脚本语言读取元数据,并为具有特定存储桶的各个表执行卸载命令(通常将tablename作为bucketname或您喜欢的任何其他格式) 2.执行上面的代码将数据卸载到相应的存储桶
答案 1 :(得分:0)
使用在EC2实例或其他任何地方运行的python脚本,您可以实现这一点。
例如,如果您要导出每个新的10000行数据,可以将其添加到var mapperProvider = new MapperProvider();
services.AddSingleton<IMapper>(mapperProvider.GetMapper());
services.AddAutoMapper(mapperProvider.Assemblies);
查询中,并跟踪要使用以下内容卸载的当前偏移量 Python程序。
UNLOAD
以所需的时间间隔执行上述查询,并将数据存储在所需的文件名/文件路径中。