本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
根據 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 (加密的資料集) 選項。
在 Athena 主控台資料表清單中,加密資料表會顯示一個鑰匙形圖示。