基于 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.enabled 设置为 false 来禁用分段上传。如果您未执行此操作,则 Athena 无法确定 Parquet 文件长度,将出现 HIVE_CANNOT_OPEN_SPLIT 错误。有关更多信息,请参阅 Amazon EMR 管理指南 中的为 Amazon S3 配置分段上传

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

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

  • 当使用 statement.executeQuery() 执行 CREATE TABLE 时,使用 JDBC 驱动程序并设置 TBLPROPERTIES 值(如上一个示例中所示)。

  • 使用 Athena 控制台中的 Add table (添加表),然后在为 Location of input data set (输入数据集的位置) 指定值时选择 Encrypted data set (加密数据集)

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