
AWS RedshiftのデータをQuickSightで可視化してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)と申します。データベースのデータを可視化してみたらどうかと思って、AWS RedshiftのデータをQuickSightで可視化してみました。
IAM Roleを作成
まず、Redshiftで、S3ファイルの読み込むためには、権限が必要なので、IAMRoleを先に作成する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::*/*"
},
{
"Effect": "Allow",
"Action": [
"glue:*"
],
"Resource": [
"arn:aws:glue:*:983654105819:catalog",
"arn:aws:glue:*:983654105819:database/spectrum",
"arn:aws:glue:*:983654105819:table/spectrum/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListAllMyBuckets",
"s3:GetBucketAcl",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeRouteTables",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcAttribute",
"iam:ListRolePolicies",
"iam:GetRole",
"iam:GetRolePolicy",
"cloudwatch:PutMetricData"
],
"Resource": [
"*"
]
}
]
}
まず、IamRoleの「ポリシー」で上のJsonコードを入れ、ポリシーを作成します。
そして、「ポリシーをアタッチします」ボタンを押して、イメージを同じポリシーを洗濯します。
- AWSGlueConsoleFullAccess
- cm-kimjaewook-redshift-role(先、Jsonで作成したポリシー)
Redshiftクラスターを作成して、「IAMロールの管理」に入って先、作成したIAMロールを追加ます。 Redshiftクラスターの作成は下を参考してください。
AWS Redshiftクラスターの作成
クラスターの構成はDefaultにしました。
データベースの設定は「マスターユーザー名」と、「マスターユーザーのパスワード」を設定して「クラスター作成」を押します。
少し待ってみるとクラスターの状態がAvailableになります。
続いて、エディタでクエリエディタを押した後、「データベースに接続」ボタンを押して、上のイメージどうりに入力してください。データベースユーザーは自分が設定したユーザー名を入力します。
データベースに接続したら、状態が「Connected」になり、左にはSelect databaseに「dev」が、Select schemaには「public」が現れます。
Redshiftのサンプルデータ
そして、Redshiftに入れるサンプルデータを用意します。自分はコロナの感染者のデータを持ってきました。
サンプルデータをもとにテーブルを作成します。そしてRunボタンを押すと、左に「quicksight_sample」 テーブルが追加されます。
copy public.quicksight_sample(city,date,numberofconfirmedcases)
from 's3://redshift-s3file/csvfile_folder/korea_corona.csv'
iam_role 'arn:aws:iam::先作成したロール/cm-kimjaewook-redshift-role-test'
delimiter ','
IGNOREHEADER 1;
最後にs3にあるcsvファイルを読み込みテーブルにデータを追加します。
QuickSightの設定
QuickSightに入った後「新しいテータセット」を押して、Redshift(自動検出)を押します。
イメージどうり入力して「接続を検証」を押します。「検証済み」になったら「データソースを作成」ボタンを押します。
quicksight_sampleを選択します。
「データクエリを直接実行」を選択して「Visualize」ボタンを押したらデータセットが作成されます。
可視化テスト
自分がフィールドを選択し、グラフを作ることができます。