支持的 Amazon S3 清单文件格式
您可以在 Amazon S3 中使用 JSON 清单文件指定要导入到 Amazon QuickSight 的文件。这些 JSON 清单文件可以使用以下所示的 Amazon QuickSight 格式或使用《Amazon Redshift 数据库开发人员指南》中使用清单指定数据文件中描述的 Amazon Redshift 格式。您无需使用 Amazon Redshift 就能使用 Amazon Redshift 清单文件格式。
如果使用 Amazon QuickSight 清单文件,它必须具有 .json 扩展名,例如 my_manifest.json。如果使用 Amazon Redshift 清单文件,则可以使用任何扩展名。
如果使用 Amazon Redshift 清单文件,则 Amazon QuickSight 会像 Amazon Redshift 一样处理可选的 mandatory 选项。如果找不到关联的文件,则 Amazon QuickSight 结束导入过程并返回错误。
您选择导入的文件必须是分隔的文本(例如 .csv 或 .tsv)、日志 (.clf)、扩展日志 (.elf) 格式或 JSON (.json)。一个清单文件中标识的所有文件都必须使用相同的文件格式。另外,所有文件必须具有相同数量和类型的列。Amazon QuickSight 支持 UTF-8 文件编码,但不支持带有字节顺序标记(BOM)的 UTF-8。如果您要导入 JSON 文件,则对于 globalUploadSettings,请指定 format,而不是 delimiter、textqualifier 和 containsHeader。
确保您指定的任何文件都位于您已授予 Amazon QuickSight 访问权限的 Amazon S3 存储桶中。有关向 Amazon QuickSight 授予对 Amazon 资源的访问权限的信息,请参阅 访问数据来源。
Amazon QuickSight 的清单文件格式
Amazon QuickSight 清单文件使用以下 JSON 格式。
{ "fileLocations": [ { "URIs": [ "uri1", "uri2", "uri3" ] }, { "URIPrefixes": [ "prefix1", "prefix2", "prefix3" ] } ], "globalUploadSettings": { "format": "JSON", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }
使用 fileLocations 元素中的字段可指定要导入的文件,使用 globalUploadSettings 元素中的字段可指定这些文件的导入设置,如字段分隔符。
清单文件元素如下所述:
-
fileLocations – 可以使用该元素指定要导入的文件。您可以使用
URIs和/或URIPrefixes数组来执行该操作。您必须在其中任意一项中至少指定一个值。-
URIs – 可以使用该数组列出要导入的特定文件的 URI。
Amazon QuickSight 可以访问任何 Amazon Web Services 区域 中的 Amazon S3 文件。不过,如果 Amazon S3 存储桶的 Amazon 区域与 Amazon QuickSight 账户使用的区域不同,则必须使用 URI 格式指定该区域。
支持以下格式的 URI。
URI 格式 示例 评论 https://s3.amazonaws.com/<存储桶名称>/<文件名> https://s3.amazonaws.com/amzn-s3-demo-bucket/data.csv s3://<存储桶名称>/<文件名> s3://amzn-s3-demo-bucket/data.csv https://<存储桶名称>.s3.amazonaws.com/<文件名> https:// amzn-s3-demo-bucket.s3.amazonaws.com/data.csvhttps://s3-<区域名称>.amazonaws.com/<存储桶名称>/<文件名> https:// s3-us-east-1.amazonaws.com/amzn-s3-demo-bucket/data.csv此 URI 类型指定 Amazon S3 存储桶的 Amazon Web Services 区域。
https://<存储桶名称>.s3-<区域名称>.amazonaws.com/<文件名>
https:// amzn-s3-demo-bucket.s3-us-east-1.amazonaws.com/data.csv此 URI 类型指定 Amazon S3 存储桶的 Amazon Web Services 区域。 -
URIPrefixes – 使用该数组列出 S3 存储桶和文件夹的 URI 前缀。将导入指定的存储桶或文件夹中的所有文件。Amazon QuickSight 以递归方式从子文件夹中检索文件。
QuickSight 可以访问任何 Amazon Web Services 区域 中的 Amazon S3 存储桶或文件夹。如果 S3 存储桶与 QuickSight 账户使用的格式不同,请必须使用标识 S3 存储桶的 Amazon Web Services 区域 的 URI 前缀格式。
支持以下格式的 URI 前缀。
URI 前缀格式 示例 评论 https://s3.amazonaws.com/<存储桶名称>/
https://s3.amazonaws.com/amzn-s3-demo-bucket/ https://s3.amazonaws.com/<存储桶名称>/<文件夹名称 1>/(<文件夹名称 2>/等) https://s3.amazonaws.com/amzn-s3-demo-bucket/folder1/ s3://<存储桶名称> s3://amzn-s3-demo-bucket/ s3://<存储桶名称>/<文件夹名称 1>/(<文件夹名称 2>/等) s3://amzn-s3-demo-bucket/folder1/ https://<
存储桶名称>.s3.amazonaws.comhttps:// amzn-s3-demo-bucket.s3.amazonaws.comhttps://s3-<区域名称>.amazonaws.com/<存储桶名称>/ https://s3- your-region-for-example-us-east-2.amazonaws.com/amzn-s3-demo-bucket/此 URIPrefix类型指定 Amazon S3 存储桶的 Amazon Web Services 区域。https://s3-<区域名称>.amazonaws.com/<存储桶名称>/<文件夹名称 1>/(<文件夹名称 2>/等) https:// s3-us-east-1.amazonaws.com/amzn-s3-demo-bucket/folder1/此 URIPrefix类型指定 Amazon S3 存储桶的 Amazon Web Services 区域。https://<存储桶名称>.s3-<区域名称>.amazonaws.com https://
amzn-s3-demo-bucket.s3-us-east-1.amazonaws.com此 URIPrefix类型指定 Amazon S3 存储桶的 Amazon Web Services 区域。
-
-
globalUploadSettings –(可选)可以使用该元素指定 Amazon S3 文件的导入设置,例如字段分隔符。如果未指定此元素,Amazon QuickSight 将对该部分中的字段使用默认值。
重要
对于日志 (.clf) 和扩展日志 (.elf) 文件,只有这部分中的 format 字段适用,因此,您可以跳过其他字段。如果选择包括它们,其值将被忽略。
-
format –(可选)指定要导入的文件的格式。有效的格式为
CSV、TSV、CLF、ELF和JSON。默认值为CSV。 -
delimiter –(可选)指定文件字段分隔符。必须映射到
format字段中指定的文件类型。有效的格式为用于 .csv 文件的逗号 (,) 和用于 .tsv 文件的制表符 (\t)。默认值为逗号 (,)。 -
textqualifier –(可选)指定文件文本限定符。有效格式为单引号 (
')、双引号 (\")。开头的反斜线是 JSON 中的双引号必须使用的转义字符。默认值为双引号 (\")。如果您的文本不需要文本限定符,则不要包含此属性。 -
containsHeader –(可选)指定文件是否具有标题行。有效的格式为
true或false。默认值为true。
-
Amazon QuickSight 的清单文件示例
下面是一些完整的 Amazon QuickSight 清单文件的示例。
以下示例显示一个清单文件,它指定两个要导入的特定 .csv 文件。这些文件对文本限定符使用双引号。默认值是可接受的,因此,跳过 format、delimiter 和 containsHeader 字段。
{ "fileLocations": [ { "URIs": [ "https://yourBucket.s3.amazonaws.com/data-file.csv", "https://yourBucket.s3.amazonaws.com/data-file-2.csv" ] } ], "globalUploadSettings": { "textqualifier": "\"" } }
以下示例显示一个清单文件,它指定一个要导入的特定 .tsv 文件。该文件还包含其他 Amazon 区域中的存储桶,其中包含要导入的其他 .tsv 文件。默认值是可接受的,因此跳过 textqualifier 和 containsHeader 字段。
{ "fileLocations": [ { "URIs": [ "https://s3.amazonaws.com/amzn-s3-demo-bucket/data.tsv" ] }, { "URIPrefixes": [ "https://s3-us-east-1.amazonaws.com/amzn-s3-demo-bucket/" ] } ], "globalUploadSettings": { "format": "TSV", "delimiter": "\t" } }
以下示例指定两个包含要导入的 .clf 文件的存储桶。一个存储桶位于与 Amazon QuickSight 账户相同的 Amazon Web Services 区域 中,另一个存储桶位于另一个 Amazon Web Services 区域 中。delimiter、textqualifier 和 containsHeader 字段不适用于日志文件,因此跳过这些字段。
{ "fileLocations": [ { "URIPrefixes": [ "https://amzn-s3-demo-bucket1.your-s3-url.com", "s3://amzn-s3-demo-bucket2/" ] } ], "globalUploadSettings": { "format": "CLF" } }
以下示例使用 Amazon Redshift 格式指定要导入的 .csv 文件。
{ "entries": [ { "url": "https://amzn-s3-demo-bucket.your-s3-url.com/myalias-test/file-to-import.csv", "mandatory": true } ] }
以下示例使用 Amazon Redshift 格式指定两个要导入的 JSON 文件。
{ "fileLocations": [ { "URIs": [ "https://yourBucket.s3.amazonaws.com/data-file.json", "https://yourBucket.s3.amazonaws.com/data-file-2.json" ] } ], "globalUploadSettings": { "format": "JSON" } }