根據 Amazon S3 中的加密資料集建立資料表 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

根據 Amazon S3 中的加密資料集建立資料表

建立資料表時,請向 Athena 指出某個資料集已在 Simple Storage Service (Amazon S3) 中加密。使用 SSE-時不需要這樣做KMS。對於 SSE-S3 和 AWS KMS 加密時,Athena 會決定如何解密資料集並建立資料表,因此您不需要提供金鑰資訊。

執行查詢的使用者,包括建立資料表的使用者,必須具有這個主題稍早所述的許可。

重要

如果您EMR搭配使用 Amazon EMRFS 來上傳加密的 Parquet 檔案,則必須fs.s3n.multipart.uploads.enabled將設定為false停用多部分上傳。如果您不這樣做,Athena 將無法判斷 Parquet 檔案長度,並且會發生 HIVECANNOT_ OPEN _ _ SPLIT 錯誤。如需詳細資訊,請參閱 Amazon EMR管理指南中的為 Amazon S3 設定多部分上傳

若要指出資料集已在 Simple Storage Service (Amazon S3) 中加密,請執行下列其中一個步驟。如果使用 SSE-KMS,則不需要此步驟。

  • CREATETABLE陳述式中,使用指定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://amzn-s3-demo-bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'has_encrypted_data'='true')
  • 使用JDBC驅動程式並設定TBLPROPERTIES值,如前一個範例所示,當您使statement.executeQuery()用執行CREATETABLE陳述式時。

  • 使用 Athena 主控台以使用表格建立資料表並指定資料表位置時,請選取 Encrypted data set (加密的資料集) 選項。

    在新增資料表表格中選取 Encrypted data set (加密的資料集)

在 Athena 主控台資料表清單中,加密資料表會顯示一個鑰匙形圖示。

已加密資料表圖示