在 Athena 中重複使用查詢 - Amazon Athena

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

在 Athena 中重複使用查詢

當您在 Athena 中重新執行查詢時,您可以選擇性地選擇重複使用最近儲存的查詢結果。此選項可以提高效能並降低已掃描的位元組數的成本。例如,如果您知道結果在指定時間範圍內不會變更,則重複使用查詢結果就很有用。您可以指定重複使用查詢結果的最長期限。只要 Athena 的結果不超過您指定的期限,就會使用儲存的結果。如需詳細資訊,請參閱 AWS 大數據部落格中的使用 Amazon Athena 降低成本和提升查詢效能

注意

查詢結果重複使用功能需要 Athena 引擎第 3 版。如需有關變更引擎版本的資訊,請參閱 變更 Athena 引擎版本

主要功能

  • 重複使用查詢結果是每次查詢的選擇加入功能。您可以針對每次查詢啟用查詢結果重複使用。

  • 您可以以分鐘、小時或天數來指定重複使用查詢結果的最長期限。無論使用的時間單位為何,可指定的最長期限相等於 7 天。 預設值為 60 分鐘。

  • 當您啟用查詢的結果重複使用時,Athena 會在相同的工作群組中尋找先前執行的查詢。如果 Athena 找到對應的已儲存查詢結果,就不會重新執行查詢,而是指向先前的結果位置或從中擷取資料。

  • 對於任何啟用結果重複使用選項的查詢,Athena 只會在下列所有條件皆為 true 時,才會重複使用上次儲存至工作群組資料夾的查詢結果:

    • 查詢字串是完全相符的字串。

    • 資料庫與目錄名稱相符。

    • 先前的結果不會超過指定的最長期限,或者如果尚未指定最長期限,則不超過 60 分鐘。

    • Athena 只會重複使用與目前執行具有完全相同的結果組態的執行。

    • 您可以存取查詢中參考的所有資料表。

    • 您可以存取儲存先前結果的 S3 檔案位置。

如果不符合上述任何條件,則 Athena 會在不使用快取結果的情況下執行查詢。

考量與限制

使用查詢結果重複使用功能時,請謹記以下幾點:

  • Athena 只會在相同的工作群組中重複使用查詢結果。

  • 重複使用查詢結果功能遵循工作群組組態。如果您覆寫查詢的結果組態,則會停用該功能。

  • 只有在 Amazon S3 上產生查詢結果集的查詢才能重複使用查詢結果。這表示不支援例如CTASINSERT INTOMERGEUNLOAD、、和DDL查詢。

  • 支援使用 AWS Glue 註冊的阿帕奇蜂巢、阿帕奇胡迪、阿帕奇冰山和 Linux 基金會三角洲湖表。不支援外部 Hive 中繼存放區。

  • 不支援參考聯合目錄或外部 Hive 中繼存放區的查詢。

  • Lake Formation 受管理的資料表不支援查詢結果重複使用。

  • 當資料表來源的 Amazon S3 位置註冊為 Lake Formation 中的資料位置時,不支援查詢結果重複使用。

  • 不支援具有資料列和資料欄許可的資料表。

  • 不支援具有精細的存取控制 (例如資料欄或資料列篩選) 的資料表。

  • 任何參考不支援資料表的查詢都不符合查詢結果重複使用的資格。

  • Athena 要求您擁有 Amazon S3 讀取許可,如此才能重複使用之前產生的輸出檔案。

  • 重複使用查詢結果功能會假設先前結果的內容尚未修改。Athena 在使用之前不會檢查先前結果的完整性。

  • 如果先前執行的查詢結果已刪除或移至 Amazon S3 中的其他位置,後續執行相同查詢將不會重複使用查詢結果。

  • 可能會傳回過時結果。在達到您指定的重複使用最長期限之前,Athena 不會檢查來源資料是否有變更。

  • 如果有多個結果可供重複使用,則 Athena 會使用最新的結果。

  • 使用類似 rand()shuffle() 的非確定性運算子或函數的查詢,並未使用快取結果。例如,不含 ORDER BYLIMIT 是非確定性的,且並非快取,但含有 ORDER BYLIMIT 是確定性的其已快取。

  • Athena 主控台、Athena 和JDBC驅動程式支援查詢結果重複使用。API目前,查詢結果重複使用的ODBC驅動程式支援僅適用於 Windows。

  • 若要搭配使用查詢結果重複使用功能JDBC,所需的最低驅動程式版本為 2.0.34.1000。對於ODBC,所需的最低驅動程式版本是 1.1.19.1002。如需驅動程序下載資訊,請參閱 使用ODBC和JDBC司機 Connect 到 Amazon Athena

  • 使用多個資料目錄的查詢不支援查詢結果重複使用。

  • 查詢包含超過 20 個資料表的查詢不支援重複使用查詢結果。

如何在 Athena 主控台中重複使用查詢結果

若要使用此功能,請在 Athena 查詢編輯器中啟用 Reuse query results (重複使用查詢結果)。

在 Athena 查詢編輯器中,啟用 Reuse query results (重複使用查詢結果)。
若要設定重複使用查詢結果功能
  1. 在 Athena 查詢編輯器的 Reuse query results (重複使用查詢結果) 選項下,選擇 up to 60 minutes ago (最多 60 分鐘前) 旁邊的編輯圖示。

  2. Edit reuse time (編輯重複使用時間) 對話方塊中,從右側的方塊中選擇時間單位 (分鐘、小時或天)。

  3. 在左側的方塊中,輸入或選擇您要指定的時間單位數目。無論選擇的時間單位為何,您可以輸入的最長時間相當於七天。

    設定重複使用查詢結果的最長期限。

    下列範例將重複使用的最長期限指定為兩天。

    最多設定兩天的查詢結果重複使用。
  4. 選擇確認

    橫幅會確認您的組態變更,而 Reuse query results (重新使用查詢結果) 選項會顯示您的新設定。

    在 Athena 查詢編輯器中,新建重複使用查詢結果設定。