この演習では、RedshiftおよびAmazonQuickSightプラットフォームを使用してデータ視覚化アプリケーションを構築する方法を学習します。Amazonのデータウェアハウスを使用してデータレイクからデータを読み込み、フルマネージドのデータ視覚化ツールで表示する方法を説明します。
この実験の目的は次のとおりです。
- 1.Redshiftクラスターを作成します
- 2.S3データファイルをRedshiftデータベースにバッチでロードします
- 3.Quicksightを使用してデータテーブルを視覚化します
この実験のアーキテクチャ図は次のとおりです
データウェアハウスを構築する
1.データを表示する
S3バケット(ここs3://lab-921283538843-wzlinux-com/spark/output
)のEMR実験で生成された寄木細工の形式のファイルが存在するかどうかを確認します。
2.IAMロールを作成します
IAMサービスを選択し、[ロール]-> [ロールの作成]をクリックして、[Redshift]を選択します
Redshift-Customizableを選択し、Nextpermissionをクリックします
権限AmazonS3ReadOnlyAccessを選択します
パーミッション名myRedshiftRoleを追加し、[確認]をクリックします
3.サブネットグループを作成します
Redshiftクラスターを作成する前に、サブネットグループを作成します。Redshiftサービスを選択し、左側のメニューバーで[CONFIG]-> [Manage SubnetGroup]を選択します
次に、「クラスターサブネットグループの作成」を選択します。サブネットグループ名はデフォルト名「cluster-subnet-group-1」を受け入れることができ、説明ボックスに説明テキストを入力します。[デフォルトVPC]を選択し、[このVPCのすべてのサブネットを追加する]を選択してから、[クラスターサブネットグループの作成]をクリックして、サブネットグループの作成を完了します。
4.Redshiftクラスターを作成します
左側のメニューで[クラスター]を選択し、[クラスターの作成]をクリックして、クラスターの名前を設定し(中国語、特殊文字、英語で始まり、数字、マイナス記号を使用できます)、を選択します。ノードタイプdc2.large
データベース構成はデフォルト値を受け入れ、マスターユーザーパスワードを入力します(入力したパスワードを覚えておいてください)
クラスターのアクセス許可で、前に作成したmyRedshiftRoleロールを選択し、[IAMロールの関連付け]をクリックします
他の構成では、デフォルトのVPC、デフォルトのセキュリティグループ、および前に作成したクラスターサブネットグループを選択し、[クラスターの作成]をクリックして確認します。約5分後、クラスターは[使用可能]になります。
5.Redshiftデータベースにアクセスします
Redshiftデータベースにアクセスする方法は2つあります。1つはRedshiftコンソールのクエリエディターを使用する方法、もう1つはSQLクライアント(SQL Workbench / Jクライアントなど)を使用する方法です。
この実験では、操作を簡単にするために、Redshiftコンソールのクエリエディターを使用してデータベースにアクセスします。左側のメニューで「エディタ」を選択し、「データベースに接続」ウィンドウにパラメータを入力してから、「データベースに接続」を選択します
6.テーブルを作成します
クエリエディタでテーブルを作成し、左側の[スキーマの選択]で[パブリック]を選択してから、SQLステートメントを入力してSQLクエリウィンドウにテーブルを作成します。
create table table1(
tno varchar(20),
tdate varchar(15),
uno varchar(10),
pno varchar(10),
tnum int,
uname varchar(20),
umobile varchar(20),
ano varchar(20),
acity varchar(50),
aname varchar(50),
pclass varchar(10),
pname varchar(50),
price decimal(10, 2)
);
以下に示すように
「実行」を選択すると、結果に「完了」と表示されます。
7.S3データをインポートします
新しいSQLクエリウィンドウ(ここではクエリ2)を開き、以下のSQLコマンドを入力してS3データを読み込み、アカウントを実際のアカウントIDに置き換えることに注意して、取得したS3バケットアドレスを確認します。
copy table1 from 's3://lab-921283538843-wzlinux-com/spark/output/'
credentials 'aws_iam_role=arn:aws:iam::921283538843:role/myRedshiftRole'
format as parquet;
以下に示すように
[実行]をクリックすると、結果が「完了」と表示されます。Query3に「 selectfromtable1 ;」と入力して、テーブル内のデータをクエリします。Query4に「selectcount()from table1;」と入力すると、テーブル内のデータをクエリする必要があります。これは、S3のデータがRedshiftデータウェアハウスにコピーされたことを示しています。
8.インターネットアクセスを許可する
次のステップでは、AWSQuicksightを使用してRedshiftでデータを視覚化します。その前に、QuicksightにインターネットからRedshiftへのアクセスを許可する必要があります。このために、最初にEC2メニューでパブリックネットワークエラスティックIPアドレスを作成します(プロセスは省略されています)。次に、Redshiftプロパティを変更して、パブリックアクセスを許可します。
パブリックアクセス可能を「はい」に変更し、対応するエラスティックパブリックネットワークIPアドレスを選択します。
この操作にはしばらく時間がかかります。数分お待ちください。
データの視覚化
1.Quicksightを有効にします
Quicksightの有効化については、ここでは紹介しません。Lab3をご覧いただけます。
2.データセットを作成します
Quicksightコンソールインターフェイスに入り、左側のデータセットをクリックして、「新しいデータセット」の作成を選択します
Redshift(自動検出)データセットを選択します。Redshiftには手動接続方法もありますが、ここでは説明しません。
接続パラメータを入力し、[データソースの作成]を選択し、対応するRedshiftデータベースを選択し、対応するアドレス、ポート、データベース名、ユーザー名、およびパスワードを構成するように注意してください
Table1を選択し、[Select]をクリックし、最後に[Virtualize]をクリックして、データセットの作成を完了します(ここでは、データをRedshiftからQuicksighにインポートすることを選択しているため、分析速度がはるかに速くなります)。
3.データの視覚化
視覚化オブジェクトウィンドウを開き、表示モードを「垂直棒グラフ」として選択します。
tdate
ドラッグ&ドロップX axis
バー、tnum
ドラッグvalue
バー(システムが自動的にカウント数を選択)
これで、「日付はX軸、その日の総販売量はY軸の高から低」の表示が完了します。