Amazon Athena 谷歌 BigQuery 連 - Amazon Athena

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

Amazon Athena 谷歌 BigQuery 連

Amazon Athena 谷歌連接器BigQuery使 Amazon Athena 能夠對您的谷歌 BigQuery數據運行 SQL 查詢。

必要條件

限制

  • Lambda 函數的逾時值上限為 15 分鐘。每次分割都會執行查詢, BigQuery 並且必須有足夠的時間來儲存 Athena 才能讀取結果。如果 Lambda 函數逾時,查詢就會失敗。

  • 谷歌 BigQuery 是區分大小寫的。連接器會嘗試更正資料集名稱和資料表名稱的大小寫,但不會對專案 ID 進行任何大小寫更正。這是必要的,因為 Athena 會使所有中繼資料變為小寫。這些更正使得許多額外的調用谷歌 BigQuery.

  • 不支援二進位資料類型。

  • 由於 Google 並發 BigQuery 性和配額限制,連接器可能會遇到 Google 配額限制問題。為了避免這些問題,請 BigQuery 盡可能多地向 Google 推送約束。如需 BigQuery配額的詳細資訊,請參閱 Google BigQuery 說明文件中的配額和限制

參數

使用本節中的 Lambda 環境變數來設定 Google BigQuery 連接器。

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

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

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

  • kms_key_id - (選用) 依預設,任何溢出到 Amazon S3 的資料都會使用 AES-GCM 驗證加密模式和隨機產生的金鑰進行加密。為了讓您的 Lambda 函數使用 KMS 產生的更強大的加密金鑰,例如 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331,您可以指定 KMS 金鑰 ID。

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

  • gcp_project_id - 專案 ID (非專案名稱),它包含連接器應讀取的資料集 (例如,semiotic-primer-1234567)。

  • 秘密名稱 — 密碼的名稱,其中包含您以 JSON 格式的 AWS Secrets Manager 認證 (例如,)。 BigQuery GoogleCloudPlatformCredentials

  • 端點 — (選用) 私有端點的網址。 BigQuery 當您想要透過私有端點存取 BigQuery 時,請使用此參數。

分割和檢視

由於 BigQuery 連接器使用 BigQuery 儲存區讀取 API 來查詢資料表,而 BigQuery 儲存區 API 不支援檢視,因此連接器會使用用 BigQuery 戶端進行檢視的單一分割。

效能

若要查詢資料表, BigQuery 連接器會使用 BigQuery 儲存區讀取 API,該 API 使用 RPC 型通訊協定,可快速存取 BigQuery受管理儲存區。如需有關 BigQuery 儲存區讀取 API 的詳細資訊,請參閱 Google Cloud 說明文件中的使用 BigQuery 儲存空間讀取 API 讀取資料表資料。

選取資料欄子集可大幅加速查詢執行期,並減少掃描的資料。隨著並行數目增加,連接器容易出現查詢失敗,且連接器速度通常較慢。

Athena Google BigQuery 連接器會執行述詞下推,以減少查詢掃描的資料。 LIMIT子句、ORDER BY子句、簡單述詞和複雜運算式會向下推送至連接器,以減少掃描的資料量並減少查詢執行時間。

LIMIT 子句

LIMIT N 陳述句可減少查詢掃描的資料。透過 LIMIT N 下推,連接器只會向 Athena 傳回 N 個資料列。

前 N 個查詢

N 個查詢會指定結果集的順序,以及傳回的資料列數目的限制。您可以使用這種查詢類型,判斷資料集的前 N 個最大值或前 N 個最小值。透過前 N 個下推,連接器只會向 Athena 傳回 N 個排序的資料列。

述詞

述詞是 SQL 查詢的 WHERE 子句中的一種表達式,它會評估為布林值,並根據多個條件篩選資料列。Athena Google BigQuery 連接器可以結合這些表達式,並將其直接推送到 Google BigQuery 以增強功能並減少掃描的數據量。

以下 Athena 谷歌 BigQuery 連接器運營商支持謂詞下推:

  • 布林值:AND、OR、NOT

  • 等式:EQUAL、NOT_EQUAL、LESS_THAN、LESS_THAN_OR_EQUAL、GREATER_THAN、GREATER_THAN_OR_EQUAL、IS_DISTINCT_FROM、NULL_IF、IS_NULL

  • 算術:ADD、SUBTRACT、MULTIPLY、DIVIDE、MODULUS、NEGATE

  • 其他:LIKE_PATTERN、IN

合併下推範例

如需增強的查詢功能,請合併下推類型,如以下範例所示:

SELECT * FROM my_table WHERE col_a > 10 AND ((col_a + col_b) > (col_c % col_d)) AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%') ORDER BY col_a DESC LIMIT 10;

直通查詢

Google 連 BigQuery 接器支援直通查詢。傳遞查詢使用資料表函數將完整查詢推送至資料來源以進行執行。

要在 Google 上使用直通查詢 BigQuery,可以使用以下語法:

SELECT * FROM TABLE( system.query( query => 'query string' ))

以下示例查詢將查詢向下推送到 Google BigQuery 中的數據源。查詢會選取資料customer表中的所有資料行,將結果限制為 10。

SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))

授權資訊

Amazon Athena 谷歌 BigQuery 連接器項目是根據阿帕奇 -2.0 許可證授權。

使用此連接器即表示您確認包含協力廠商元件,其清單可在此連接器的 pom.xml 檔案中找到,並同意 GitHub .com 上 LICENSE.txt 檔案中提供的各自協力廠商授權中的條款。

其他資源

如需有關此連接器的其他資訊,請造訪 GitHub .com 上的對應網站