根据 Amazon S3 中的加密数据集创建表 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

根据 Amazon S3 中的加密数据集创建表

当您创建表时,向 Athena 指示已在 Amazon S3 中加密数据集。使用 SSE-KMS 时不需要。适用于 SSE-S3 和Amazon KMS加密,Athena 将确定如何解密数据集和创建表,因此您不需要提供密钥信息。

运行查询的用户(包括创建表的用户)必须拥有本主题前面所述的权限。

重要

如果您将 Amazon EMR 与 EMRFS 一起上传加密的镶木地板文件,则必须通过将fs.s3n.multipart.uploads.enabledfalse。如果您未执行此操作,Athena 无法确定 Parquet 文件长度和配置单元不能打开拆分出错。有关更多信息,请参阅 。为 Amazon S3 配置分段上传中的Amazon EMR 管理指南

要指示在 Amazon S3 中数据集是加密的,请执行以下步骤之一。如果使用 SSE-KMS,无需执行此步骤。

  • 创建表语句,请使用TBLPROPERTIES子句指定'has_encrypted_data'='true',如以下示例所示。

    CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'has_encrypted_data'='true')
  • 使用JDBC 驱动程序并将TBLPROPERTIES值,如上一个示例中所示,当您使用statement.executeQuery()运行创建表网页。

  • 当您使用 Athena 控制台时添加表向导并指定表位置,请选择加密数据集选项。

    
                            Select加密数据集中的添加表向导

在 Athena 控制台列表中,加密表将显示加密图标。


                    加密表图标