Amazon Athena

若要新增資料庫連線,請按一下右上角的齒輪圖示,然後導覽至管理設定 > 資料庫 > 新增資料庫

連線至 Athena

若要將 Metabase 連線至 Athena,您需要輸入您的 IAM 憑證

  • 存取金鑰
  • 私密金鑰

Metabase 將會加密這些憑證。

如果您使用其他 AWS 服務,我們建議您建立一個特殊的 AWS 服務帳戶,該帳戶僅具有執行 Athena 所需的權限,並輸入該帳戶的 IAM 憑證,以將 Metabase 連線至 Athena。

請參閱Athena 中的身分與存取管理

使用 AWS 預設憑證鏈連線

如果您在 AWS 上執行 Metabase,並想要使用AWS 預設憑證鏈,請將「存取金鑰」和「私密金鑰」欄位留白。

在這兩種情況下,Athena 驅動程式都會根據您設定的 IAM 角色自動擷取工作階段憑證。

設定

您可以隨時編輯這些設定。請務必記得儲存您的變更。

顯示名稱

資料庫在 Metabase 介面中顯示的名稱。

區域

您的資料庫託管所在的 AWS 區域,適用於 Amazon Athena。例如,您可能會輸入 us-east-1

工作群組

AWS 工作群組。例如:primary。請參閱工作群組文件

S3 暫存目錄

此 S3 暫存目錄必須與您在上方指定的區域位於同一區域。

存取金鑰

AWS 的 IAM 憑證的一部分。Metabase 將會加密這些憑證。

如果您在 AWS 上執行 Metabase,並想要使用AWS 預設憑證鏈,請將「存取金鑰」和「私密金鑰」欄位留白。

私密金鑰

AWS 的 IAM 憑證的一部分。Metabase 將會加密這些憑證。

其他 Athena 連線字串選項

您可以透過字串指定其他選項,例如 UseResultsetStreaming=0;LogLevel=6

重新執行簡單探索的查詢

如果使用者想要在套用任何摘要或篩選條件選取之前,先按一下執行(播放按鈕),請將此選項關閉

依預設,當您從摘要選單中選擇分組選項,或從鑽取選單中選擇篩選條件時,Metabase 會立即執行查詢。如果您的資料庫速度緩慢,您可能會想要停用重新執行,以避免每次點擊都載入資料。

選擇 Metabase 同步與掃描的時間

開啟此選項以管理 Metabase 用於保持資料庫最新狀態的查詢。如需更多資訊,請參閱同步與掃描資料庫

資料庫同步

如果您已選取選擇同步與掃描發生的時間 > 開啟,您將能夠設定

  • 同步的頻率:每小時(預設)或每日。
  • 執行同步的時間,以 Metabase 應用程式執行的伺服器的時區為準。

掃描篩選條件值

Metabase 可以掃描此資料庫中每個欄位中存在的值,以在儀表板和問題中啟用核取方塊篩選條件。這可能是一個相當耗費資源的程序,特別是當您的資料庫非常龐大時。

如果您已選取選擇同步與掃描發生的時間 > 開啟,您將會在掃描篩選條件值下方看到以下選項

  • 定期排程可讓您以符合資料庫變更速率的頻率執行掃描查詢。時間設定以 Metabase 應用程式執行的伺服器的時區為準。對於小型資料庫,或具有經常更新的相異值的表格,這是最佳選項。
  • 如果您希望掃描查詢依需求執行,僅在新增新的篩選條件小工具時是一個絕佳選項。開啟此選項表示 Metabase 只會在將新篩選條件新增至儀表板或 SQL 問題時,掃描並快取使用的欄位值。
  • 永不,如果需要,我會手動執行是適用於過於龐大或從未真正新增新值的資料庫的選項。使用立即重新掃描欄位值按鈕來執行手動掃描,並將您的篩選條件值更新至最新狀態。

定期重新指紋辨識表格

定期重新指紋辨識將會增加資料庫的負載。

開啟此選項,以便在 Metabase 每次執行同步時掃描值範例。

指紋辨識查詢會檢查每個欄位的前 10,000 列,並使用該資料來估計每個欄位有多少個唯一值、數值和時間戳記欄位的最小值和最大值等等。如果您將此選項關閉,Metabase 將只會在設定期間對您的欄位進行一次指紋辨識。

權限與 IAM 政策

當人們嘗試連線至 AWS Athena 時,我們看到的大多數問題都與權限有關。查詢 AWS Athena 需要以下權限

  • AWS Athena。
  • AWS Glue。
  • Athena 結果儲存所在的 S3 儲存貯體。
  • Athena 正在查詢的資源(即,Athena 正在查詢的 S3 儲存貯體)。
  • 如果您使用 AWS Lake Formation,那麼您也需要透過 AWS Console 授予 AWS Lake Formation 權限(AWS Lake Formation > 權限 > 資料湖權限 > 授予資料湖權限;Metabase 使用的角色需要 SELECT 和 DESCRIBE 表格權限)。

IAM 政策範例

此政策提供 S3 中資料的唯讀權限。您需要指定您希望 Metabase 能夠從中查詢的任何 S3 儲存貯體,以及在組態中提供的 S3 儲存貯體,結果會寫入其中。

其他 Athena 功能(例如聯合查詢)可能需要其他權限。如需詳細資訊,請查看Athena 文件

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Athena",
      "Effect": "Allow",
      "Action": [
        "athena:BatchGetNamedQuery",
        "athena:BatchGetQueryExecution",
        "athena:GetNamedQuery",
        "athena:GetQueryExecution",
        "athena:GetQueryResults",
        "athena:GetQueryResultsStream",
        "athena:GetWorkGroup",
        "athena:ListDatabases",
        "athena:ListDataCatalogs",
        "athena:ListNamedQueries",
        "athena:ListQueryExecutions",
        "athena:ListTagsForResource",
        "athena:ListWorkGroups",
        "athena:ListTableMetadata",
        "athena:StartQueryExecution",
        "athena:StopQueryExecution",
        "athena:CreatePreparedStatement",
        "athena:DeletePreparedStatement",
        "athena:GetPreparedStatement"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Glue",
      "Effect": "Allow",
      "Action": [
        "glue:BatchGetPartition",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersion",
        "glue:GetTableVersions"
      ],
      "Resource": "*"
    },
    {
      "Sid": "S3ReadAccess",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": [
        "arn:aws:s3:::bucket1",
        "arn:aws:s3:::bucket1/*",
        "arn:aws:s3:::bucket2",
        "arn:aws:s3:::bucket2/*"
      ]
    },
    {
      "Sid": "AthenaResultsBucket",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:AbortMultipartUpload",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": ["arn:aws:s3:::bucket2", "arn:aws:s3:::bucket2/*"]
    }
  ]
}

如果 Metabase 也需要建立表格,您將需要額外的 AWS Glue 權限。"Resource": "*" 鍵值組會授予帳戶刪除和更新任何表格的權限

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "glue:BatchCreatePartition",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:CreateTable",
        "glue:CreateDatabase",
        "glue:UpdateTable",
        "glue:BatchDeletePartition",
        "glue:BatchDeleteTable",
        "glue:DeleteTable",
        "glue:CreatePartition",
        "glue:DeletePartition",
        "glue:UpdatePartition",
        "glue:GetCatalogImportStatus"
      ],
      "Resource": "*"
    }
  ]
}

延伸閱讀

閱讀其他Metabase 版本的文件。