Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在使用AWS管道从S3传输到红移时展平JSON文件_Amazon Web Services_Amazon S3_Amazon Redshift_Amazon Data Pipeline - Fatal编程技术网

Amazon web services 在使用AWS管道从S3传输到红移时展平JSON文件

Amazon web services 在使用AWS管道从S3传输到红移时展平JSON文件,amazon-web-services,amazon-s3,amazon-redshift,amazon-data-pipeline,Amazon Web Services,Amazon S3,Amazon Redshift,Amazon Data Pipeline,我在S3上有json文件,我想把它传输到红移。一个问题是文件包含以下格式的条目: { "user_id":1, "metadata": { "connection_type":"WIFI", "device_id":"1234" } } 在将其保存为红移之前,我希望将文件展平以包含列: user_id | connection_type | device_id 我如何使用AWS

我在S3上有json文件,我想把它传输到红移。一个问题是文件包含以下格式的条目:

{
  "user_id":1,
  "metadata":
            {
              "connection_type":"WIFI",
              "device_id":"1234"
             }
 }
在将其保存为红移之前,我希望将文件展平以包含列:

user_id | connection_type | device_id
我如何使用AWS数据管道实现这一点?
是否存在可以将json转换为所需格式的活动?我认为TransformSQL不支持json字段。

您不需要将其展平。定义
jsonpaths
config文件后,可以使用
copy
命令加载它,以便轻松地从每个json对象提取列值

使用您的结构,您可以在S3中创建一个文件(
S3://bucket/your_jsonpath.json
),如下所示:

然后在红移中运行类似的操作:

copy your_table
from 's3://bucket/data_objects.json'
credentials '<aws-auth-args>'
json 's3://bucket/your_jsonpaths.json';
复制您的_表
来自“s3://bucket/data_objects.json”

“凭据”和。

是否可以为放入S3存储桶中的每个文件自动执行复制命令?可以通过SDK触发副本吗?如果是这样的话,应该可以编写一个Lambda函数来触发该命令。您可以在S3存储桶上启用SNS通知并从中触发Lambda。看看这个:和
copy your_table
from 's3://bucket/data_objects.json'
credentials '<aws-auth-args>'
json 's3://bucket/your_jsonpaths.json';