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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

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

创建表时,向 Athena 指示已在 Amazon S3 中加密数据集。使用 SSE-KMS 时不需要。对于 SSE-S3 和 AWS KMS 加密,Athena 将确定用于解密数据集和创建表的正确材料,因此您无需提供密钥信息。

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

重要

如果您使用 Amazon EMR 与EMRFS一起上传加密的Parquet文件时,您必须通过设置禁用多部件上传 fs.s3n.multipart.uploads.enabledfalse。如果你不这么做 Athena 无法确定镶爪文件长度和 Hive_cannot_open_split 发生错误。有关详细信息,请参阅 为AmazonS3配置多部件上传Amazon EMR 管理指南.

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

  • CREATE TABLE 语句与一个指定 'has_encrypted_data'='true'TBLPROPERTIES 子句一起使用。

  • 使用 JDBC驱动程序 并设置 TBLPROPERTIES 在上一示例中显示的值,当您运行时 创建表格 使用 statement.executeQuery().

  • 使用 控制台中的 Add tableAthena 向导,然后当您为 Location of input data set 指定值时选择 Encrypted data set

基于 Amazon S3 中加密数据的表将显示在 Database (数据库) 列表中并带有加密图标。