選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Amazon Athena Google Cloud Storage 連接器

焦點模式
Amazon Athena Google Cloud Storage 連接器 - Amazon Athena

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

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

Amazon Athena Google Cloud Storage 連接器可讓 Amazon Athena 對 Parquet 和存放在 Google Cloud Storage (GCS) 儲存貯體中的CSV檔案執行查詢。將一或多個 Parquet 或CSV檔案分組到GCS儲存貯體中的未分割或分割資料夾中後,您可以在AWS Glue資料庫資料表中組織它們。

此連接器無法向 Glue Data Catalog 註冊為聯合型錄。此連接器不支援 Lake Formation 中在目錄、資料庫、資料表、資料欄、資料列和標籤層級定義的資料存取控制。此連接器使用 Glue Connections 來集中 Glue 中的組態屬性。

如果您的 帳戶中已啟用 Lake Formation,則您在 中部署的 Athena 聯合 Lambda 連接器IAM角色 AWS Serverless Application Repository 必須在 Lake Formation 中具有對 的讀取存取權 AWS Glue Data Catalog。

如需示範如何使用 Athena 對 Parquet 或GCS儲存貯體中的CSV檔案執行查詢的文章,請參閱 AWS 大數據部落格文章使用 Amazon Athena 查詢存放在 Google Cloud Platform 中的資料

必要條件

限制

  • 不支援寫入DDL操作。

  • 任何相關的 Lambda 限制。如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的 Lambda 配額

  • 目前,連接器僅支援分割區資料欄的VARCHAR類型 (string 或 AWS Glue 資料表結構描述varchar中的 )。當您在 Athena 中查詢其他分割區欄位類型時,會引發錯誤。

條款

下列術語與GCS連接器相關。

  • 處理常式 – 存取儲存GCS貯體的 Lambda 處理常式。處理常式可以用於中繼資料或資料記錄。

  • 中繼資料處理常式 – 從GCS儲存貯體擷取中繼資料的 Lambda 處理常式。

  • 記錄處理常式 – 從儲存GCS貯體擷取資料記錄的 Lambda 處理常式。

  • 複合處理常式 – Lambda 處理常式,可從儲存GCS貯體擷取中繼資料和資料記錄。

支援的檔案類型

GCS 連接器支援 Parquet 和CSV檔案類型。

注意

請確定您不會同時將 CSV和 Parquet 檔案放在相同的GCS儲存貯體或路徑中。當 Parquet 檔案嘗試讀取為 CSV時,這樣做可能會導致執行時間錯誤,反之亦然。

參數

使用本節中的參數來設定GCS連接器。

注意

Athena 資料來源連接器於 2024 年 12 月 3 日及之後建立,使用 AWS Glue 連線。

下列參數名稱和定義適用於 2024 年 12 月 3 日之前建立的 Athena 資料來源連接器。這些可能與其對應的AWS Glue 連線屬性不同。從 2024 年 12 月 3 日開始,只有在您手動部署舊版 Athena 資料來源連接器時,才能使用下列參數。

  • spill_bucket - 針對超過 Lambda 函數限制的資料,指定 Amazon S3 儲存貯體。

  • spill_prefix - (選用) 預設為指定的 spill_bucket 中名為 athena-federation-spill 的子資料夾。我們建議您在此位置設定 Amazon S3 儲存生命週期,以刪除超過預定天數或小時數的溢出。

  • spill_put_request_headers – (選用) JSON 用於溢出之 Amazon S3 putObject請求的請求標頭和值編碼映射 (例如 {"x-amz-server-side-encryption" : "AES256"})。如需其他可能的標頭,請參閱《Amazon Simple Storage Service API參考PutObject》中的 。

  • kms_key_id – (選用) 預設情況下,任何溢灑至 Amazon S3 的資料都會使用 AES-GCM 驗證的加密模式和隨機產生的金鑰進行加密。若要讓您的 Lambda 函數使用KMS類似 產生的更強加密金鑰a7e63k4b-8loc-40db-a2a1-4d0en2cd8331,您可以指定KMS金鑰 ID。

  • disable_spill_encryption - (選用) 當設定為 True 時,停用溢出加密。預設為 ,False以便使用 AES- GCM來加密溢出到 S3 的資料,無論是使用隨機產生的金鑰,還是KMS產生金鑰。停用溢出加密可以提高效能,尤其是如果溢出位置使用伺服器端加密

  • secret_manager_gcp_creds_name – 中 AWS Secrets Manager 包含您GCS登入資料JSON格式的秘密名稱 (例如 GoogleCloudPlatformCredentials)。

在 中設定資料庫和資料表 AWS Glue

由於GCS連接器的內建結構描述推論功能有限,建議您將 AWS Glue 用於中繼資料。下列程序說明如何在 中建立資料庫和資料表 AWS Glue ,以便從 Athena 存取。

在 AWS Glue建立資料庫

您可以使用 AWS Glue 主控台來建立資料庫,以搭配GCS連接器使用。

在 中建立資料庫 AWS Glue
  1. 登入 AWS Management Console 並在 開啟 AWS Glue 主控台https://console.aws.amazon.com/glue/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇新增資料庫

  4. 針對名稱,輸入您要與GCS連接器搭配使用的資料庫名稱。

  5. 針對位置,指定 google-cloud-storage-flag。此位置告知GCS連接器, AWS Glue 資料庫包含要在 Athena 中查詢GCS資料的資料表。連接器可辨識 Athena 中具有此標記的資料庫,並忽略沒有此標記的資料庫。

  6. 選擇建立資料庫

在 AWS Glue中建立資料表

現在,您可以為資料庫建立資料表。當您建立要與GCS連接器搭配使用的 AWS Glue 資料表時,您必須指定其他中繼資料。

在 AWS Glue 主控台中建立資料表
  1. 在 AWS Glue 主控台的導覽窗格中,選擇資料表

  2. Tables (資料表) 頁面中,選擇 Add table (新增資料表)。

  3. Set table properties (設定資料表屬性) 頁面中,輸入以下資訊。

    • 名稱 – 資料表的唯一名稱。

    • 資料庫 – 選擇 AWS Glue 您為GCS連接器建立的資料庫。

    • 包含路徑 – 在資料存放區區段中,針對包含路徑,輸入 字GCS首為 URI的位置 gs://(例如,gs://gcs_table/data/)。如果您有一個或多個分割區資料夾,則請不要將其包含在路徑中。

      注意

      當您輸入非 s3:// 資料表路徑時, AWS Glue 主控台會顯示錯誤。您可以忽略此錯誤。將成功建立資料表。

    • 資料格式 – 針對分類,選取 CSVParquet

  4. 選擇 Next (下一步)

  5. 強烈建議您在 Choose or define schema (選擇或定義結構描述) 頁面中定義資料表結構描述,但不是必要的。如果您未定義結構描述,GCS連接器會嘗試為您推斷結構描述。

    執行以下任意一項:

    • 如果您希望GCS連接器嘗試為您推斷結構描述,請選擇下一步,然後選擇建立

    • 若要自行定義結構描述,請遵循下一節中的步驟。

在 中定義資料表結構描述 AWS Glue

在 中定義資料表結構描述 AWS Glue 需要更多步驟,但可讓您更好地控制資料表建立程序。

在 中定義資料表的結構描述 AWS Glue
  1. Choose or define schema (選擇或定義結構描述) 頁面中,選擇 Add (新增)。

  2. 使用 Add schema entry (新增結構描述項目) 對話方塊提供資料欄名稱和資料類型。

  3. 若要將資料欄指定為分割區資料欄,請選取 Set as partition key (設定為分割區索引鍵) 選項。

  4. 選擇 Save (儲存) 可儲存資料欄。

  5. 選擇 Add (新增) 可新增另一個資料欄。

  6. 當您完成新增資料欄時,選擇 Next (下一步)。

  7. Review and create (檢閱和建立) 頁面中,檢閱資料表,然後選擇 Create (建立)。

  8. 如果您的結構描述包含分割區資訊,則請遵循下一節中的步驟,將分割區模式新增至 AWS Glue中的資料表屬性。

將分割區模式新增至 中的資料表屬性 AWS Glue

如果您的儲存GCS貯體有分割區,您必須將分割區模式新增至 資料表的屬性 AWS Glue。

將分割區資訊新增至資料表屬性 AWS Glue
  1. 在您建立之資料表的詳細資訊頁面上 AWS Glue,選擇動作編輯資料表

  2. Edit table (編輯資料表) 頁面中,向下捲動至 Table properties (資料表屬性) 區段。

  3. 選擇 Add (新增) 以新增分割區索引鍵。

  4. Key (索引鍵) 欄位,輸入 partition.pattern。此索引鍵定義資料夾路徑模式。

  5. Value (值) 中,輸入資料夾路徑樣式,例如 StateName=${statename}/ZipCode=${zipcode}/,其中由 ${} 括起來的 statenamezipcode 是分割區資料欄名稱。GCS 連接器支援 Hive 和非 Hive 分割區方案。

  6. 完成時,請選擇 Save (儲存)

  7. 若要檢視您剛剛建立的資料表屬性,請選擇 Advanced properties (進階屬性) 索引標籤。

此時,您可以導覽至 Athena 主控台。您在 中建立的資料庫和資料表 AWS Glue 可在 Athena 中查詢。

支援的資料類型

下表顯示 Parquet CSV和 支援的資料類型。

CSV

Nature of data (資料性質) Inferred Data Type (推斷的資料類型)
資料看起來像數字 BIGINT
資料看起來像字串 VARCHAR
資料看起來像浮點值 (浮點數、雙精度或十進制) DOUBLE
資料看起來像日期 時間戳記
包含真/假值的資料 BOOL

Parquet

PARQUET Athena (Arrow) (Athena (箭頭))
BINARY VARCHAR
BOOLEAN BOOL
DOUBLE DOUBLE
ENUM VARCHAR
FIXED_LEN_BYTE_ARRAY DECIMAL
FLOAT FLOAT (32 位元)
INT32
  1. INT32

  2. DATEDAY (當 Parquet 資料欄邏輯類型為 時DATE)

INT64
  1. INT64

  2. TIMESTAMP (當 Parquet 資料欄邏輯類型為 時TIMESTAMP)

INT96 時間戳記
MAP MAP
STRUCT STRUCT
LIST LIST

所需的許可

如需此連接器所需IAM政策的完整詳細資訊,請參閱 athena-gcs.yaml 檔案的 Policies區段。以下清單摘要說明所需的許可。

  • Amazon S3 寫入存取 - 連接器需要 Amazon S3 中某個位置的寫入存取權,以便從大型查詢中溢寫結果。

  • Athena GetQueryExecution – 連接器會在上游 Athena 查詢終止時使用此許可來快速失敗。

  • AWS Glue Data Catalog – GCS 連接器需要對 的唯讀存取權 AWS Glue Data Catalog ,才能取得結構描述資訊。

  • CloudWatch 日誌 – 連接器需要存取 CloudWatch 日誌來存放日誌。

效能

當資料表結構描述包含分割區欄位且 partition.pattern 資料表屬性設定正確時,您可以在查詢的 WHERE 子句中包含分割區欄位。對於這類查詢,GCS連接器會使用分割區資料欄來精簡GCS資料夾路徑,並避免掃描GCS資料夾中不需要的檔案。

對於 Parquet 資料集,選取資料欄子集會導致掃描的資料較少。當套用資料欄投影時,這通常會導致較短的查詢執行階段。

對於CSV資料集,不支援資料欄投影,也不會減少掃描的資料量。

LIMIT 子句可減少掃描的資料量,但是如果您未提供述詞,則應期望具有 LIMIT 子句的 SELECT 查詢掃描至少 16 MB 的資料。GCS 連接器會掃描較大的資料集資料,而不是較小的資料集,無論套用的LIMIT子句為何。例如,與較小的基礎資料集相比,SELECT * LIMIT 10000 查詢可為較大的基礎資料集掃描更多資料。

授權資訊

使用此連接器,即表示您確認包含第三方元件,該元件的清單可在此連接器的 pom.xml 檔案中找到,並同意 .LICENSEtxt 檔案中提供的個別第三方授權中的條款 GitHub。

其他資源

如需此連接器的詳細資訊,請造訪對應的網站 on.com GitHub。

下一個主題:

HBase

上一個主題:

Google BigQuery
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。