从 S3 中的 Parquet 清单复制 Redshift 失败,并表示 MANIFEST 参数需要 S3 对象的完整路径
Redshift copy from Parquet manifest in S3 fails and says MANIFEST parameter requires full path of an S3 object
我正在使用 Firehose 将 Parquet 格式的记录放入 S3 存储桶中。我已经手动定义了一个胶水 table.
所以我有一个像
这样的清单
{
"entries": [
{"url":"s3://my-bucket/file1.parquet"},
{"url":"s3://my-bucket/file2.parquet"}
]
}
还有像
这样的复制命令
COPY schema_name.table_name
FROM 's3://my-bucket/manifest.json'
CREDENTIALS 'aws_iam_role=arn:aws:iam::123456:role/RoleWithPermissionToRedshiftAndBucket'
PARQUET
MANIFEST;
它给出了这个神秘的错误,在 Google 上有 0 个结果。
[XX000][500310] [Amazon](500310) Invalid operation: COPY with MANIFEST parameter requires full path of an S3 object.
Details:
-----------------------------------------------
error: COPY with MANIFEST parameter requires full path of an S3 object.
code: 8001
context:
query: 23514459
location: scan_range_manager.cpp:795
process: padbmaster [pid=108497]
-----------------------------------------------;
在我看来,我肯定指定了完整路径,所以我不确定发生了什么。
有一件事是错误的,那就是存储桶在不同的区域,这也会阻止它工作。
您可能会收到此错误消息的一个原因是存储桶位于另一个 aws 帐户中。
但实际上为我修复它的是将 content_length 添加到清单中,因为镶木地板需要它。
{
"entries": [
{
"url":"s3://my-bucket/file1.parquet",
"mandatory":true,
"meta":{
"content_length":2893394
}
},
{
"url":"s3://my-bucket/file2.parquet",
"mandatory":true,
"meta":{
"content_length":2883626
}
}
]
}
显然,如果您将 content_length 排除在外,您将收到一条不相关的错误消息。这家伙犯了同样的错误并收到一条错误消息说
File has an invalid version number
Error while loading parquet format file into Amazon Redshift using copy command and manifest file
确保您设置了正确的凭据或 IAM_ROLE。
我修复了这个完全相同的错误
COPY with MANIFEST parameter requires full path of an S3 object
通过更改我的 IAM_ROLE - 从没有权限加载到这个 table.
(这方面的 Redshift 错误信息不好)。
我正在使用 Firehose 将 Parquet 格式的记录放入 S3 存储桶中。我已经手动定义了一个胶水 table.
所以我有一个像
这样的清单{
"entries": [
{"url":"s3://my-bucket/file1.parquet"},
{"url":"s3://my-bucket/file2.parquet"}
]
}
还有像
这样的复制命令COPY schema_name.table_name
FROM 's3://my-bucket/manifest.json'
CREDENTIALS 'aws_iam_role=arn:aws:iam::123456:role/RoleWithPermissionToRedshiftAndBucket'
PARQUET
MANIFEST;
它给出了这个神秘的错误,在 Google 上有 0 个结果。
[XX000][500310] [Amazon](500310) Invalid operation: COPY with MANIFEST parameter requires full path of an S3 object.
Details:
-----------------------------------------------
error: COPY with MANIFEST parameter requires full path of an S3 object.
code: 8001
context:
query: 23514459
location: scan_range_manager.cpp:795
process: padbmaster [pid=108497]
-----------------------------------------------;
在我看来,我肯定指定了完整路径,所以我不确定发生了什么。
有一件事是错误的,那就是存储桶在不同的区域,这也会阻止它工作。
您可能会收到此错误消息的一个原因是存储桶位于另一个 aws 帐户中。
但实际上为我修复它的是将 content_length 添加到清单中,因为镶木地板需要它。
{
"entries": [
{
"url":"s3://my-bucket/file1.parquet",
"mandatory":true,
"meta":{
"content_length":2893394
}
},
{
"url":"s3://my-bucket/file2.parquet",
"mandatory":true,
"meta":{
"content_length":2883626
}
}
]
}
显然,如果您将 content_length 排除在外,您将收到一条不相关的错误消息。这家伙犯了同样的错误并收到一条错误消息说
File has an invalid version number
Error while loading parquet format file into Amazon Redshift using copy command and manifest file
确保您设置了正确的凭据或 IAM_ROLE。
我修复了这个完全相同的错误
COPY with MANIFEST parameter requires full path of an S3 object
通过更改我的 IAM_ROLE - 从没有权限加载到这个 table.
(这方面的 Redshift 错误信息不好)。