BIツールMetabaseとAWS Athenaの連携手順とまとめました。
その前にMetabaseをインストールしていない場合は以下参照してください。
見出し
Metabaseインストール手順
Metabase Athena Driverインストール
現在(2020/8)Metabaseの標準でAthenaと連携していなかった為、以下のドライバーを使用しました。
https://github.com/dacort/metabase-athena-driver
以下はMetabaseがインストールされたubuntuです。
1 2 |
cd metabase/plugins wget https://github.com/dacort/metabase-athena-driver/releases/download/v1.1.0/athena.metabase-driver.jar |
Metabase 実行
1 |
java -jar metabase.jar & |
起動されるので、http://ホスト:3000 でアクセスします。
Athena連携設定
データベースを追加します。ドライバーをインストールした事により、プルダウンにAthenaが追加されて選べるようになるはずです。
リージョン、Workgroup(デフォルトprimary)、Metabase出力用S3バケット、アクセスキー、シークレットキーを設定すればOKです。
Athenaポリシー
AWSキーに対してのIAMポリシーですが、以下に記載しております。
https://github.com/dacort/metabase-athena-driver#example-iam-policy
S3のbucket1はAthenaの元データ格納バケット、bucket2はMetabase結果ファイル格納バケットです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Athena", "Effect": "Allow", "Action": [ "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:GetCatalogs", "athena:GetExecutionEngine", "athena:GetExecutionEngines", "athena:GetNamedQuery", "athena:GetNamespace", "athena:GetNamespaces", "athena:GetQueryExecution", "athena:GetQueryExecutions", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:GetTable", "athena:GetTables", "athena:GetWorkGroup", "athena:ListNamedQueries", "athena:ListQueryExecutions", "athena:ListTagsForResource", "athena:ListWorkGroups", "athena:StartQueryExecution", "athena:StopQueryExecution" ], "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/*"] } ] } |
以下も追加で必要でした。
https://github.com/dacort/metabase-athena-driver/issues/56
1 2 3 4 |
athena:ListDataCatalogs athena:ListDatabases athena:ListTableMetadata athena:GetDataCatalog |
以上です。