Azure Synapse とデータベース テンプレートを 使用して構造化データ レイクを構築する
概要
今月初めに開催された Ignite で発表された Azure Synapse データベース テンプレートは、コードを一切記述しないレイク データベースの作成を可能にするものです。レイク データベースはデータ レイクに構造を追加する強力なツールで、BLOB ストアというよりはリレーショナル システムに近い使い方です。この記事では、レイク データベースを作成してデータを読み込んだ後、テンプレートが提供するメタデータを使用して Power BI のエクスペリエンスを強化する方法について、基本的な情報を提供します。
ビデオ
このチュートリアルは以下のビデオ版でもご覧いただけます。
http://approjects.co.za/?big=ja-jp/videoplayer/embed/RWQZPz
前提条件
• Azure サブスクリプション
• Azure Synapse Analytics ワークスペース
• Azure Data Lake Storage Gen2 (ADLS)
データベース テンプレートを使用して
レイク データベースを作成する
レイク データベースの作成を開始するには、Azure Synapse のギャラリーに移動し、[Database Templates (データベース テンプレート)] タブを開きます。現在マイクロソフトがサポートするさまざまな業界に対応したテンプレートのリストが表示されるので、自分の業界に最も近いテンプレートを選択してください。この記事では、「Retail (小売業)」を選びます。
テンプレートを選んで [Continue (続行)] を選択するとキャンバスが表示されます。このキャンバスでテンプレートを探索し、使用するテーブルを見つけることができます。このページでは、テンプレートの項目を見つけて開始することが重要なため、完全に一致するテーブルでなくても問題ありません。今回の場合、「Transaction」、「TransactionLineItem」、「Channel」を選択しました。選択したら [Create database (データベースを作成)] を選択します。
[Lake database (レイク データベース)] タブが表示されます。ここでデータベースのテーブルをカスタマイズしたり、ストレージを設定したりすることができます。まず、データベースのストレージ設定を、データの保存先となる ADLS のパスに設定します。次に、データの要件に合わせてテーブル スキーマをカスタマイズする必要があります。キャンバス上でテーブルを選択すると、すべてのスキーマを表示し、必要なコンポーネントをカスタマイズできます。ここでは、「Transaction」の大半の列を削除して「TransactionId」、「CustomerId」、「SalesChannelId」だけを残し、「SalesChannelId」という名前を「ChannelId」に変更しました。これは、私たちが使用する「Channel の ID」が、より一般的な種類のチャネルを指しているためです。
データベースのカスタマイズについて詳しくは、こちらのドキュメントをご覧ください。
テーブルは、要件に合わせて以下のスクリーンショットのようにカスタマイズされました。さらにストレージ設定が更新され、データベース名は「MyLakeDB」に変更されています。
現在データベースには、「Channel」、「Transaction」、「TransactionLineItem」の各テーブルに必要なスキーマが設定されています。このデータベースを公開して変更を保存し、メタデータ定義を Synapse で作成することで、Power BI などのその他のアプリケーションでメタデータを使用できるようになります。
パイプラインを構築して
レイク DB にデータを読み込む
この時点で作成されているのは空のデータベースです。データ レイク内のフォルダーは空白または未作成で、データベースをクエリしてもデータは返されません。レイク データベースにデータを読み込む方法は主に 2 つあります。Synapse のデータ フローまたはマップ データ ツールです。データ フローは一般に提供されている既存の機能であり、変換ファーストのアプローチでデータを読み込みます。マップ データ ツールは、データ ファーストのアプローチで作成されたマッピングからパイプラインを自動生成する、新しいプレビュー機能です。マップ データ ツールの詳細についてはこちらでご覧いただけます。この記事ではデータ フローを使用してデータを読み込みます。
データ フローは、データベースの各テーブルに 1 つずつ、合計 3 つ作成する必要があります。まず、空白のデータ フローを作成し、データベースに読み込むデータセットをソースが参照するように設定します。ソース データセットは売上データが入った CSV ファイルで、このデータをターゲット データベースにマッピングします。
Synapse データ フローでは、ソース データセットがターゲット先のスキーマに適合するまで変換を適用できます。具体的にどのような変換が必要かはデータによって異なりますが、今回のユース ケースでは不要な列を削除する選択だけを使用しています。Synapse データ フローの使用方法については、こちらの記事をご覧ください。
さらに、ワークスペース DB の [Sink type (シンクの種類)] を使用して、レイク データベースにデータを書き込みます。このワークスペース DB オプションにより、ターゲットとして使用する Synapse ワークスペース内のデータベースのリストが提供されます。現在はレイク データベースと Spark データベースがサポートされています。「Sink settings (シンク設定)」のドロップダウンを使用して、データの書き込み先となるデータベースとテーブルを選択します。これにより、公開されたデータベースからコネクタがストレージ設定を取得し、データの書き込み時にこれらの設定が使用されるようになります。
このプロセスを各テーブルについて繰り返すことで、3 つの独立したデータ フローが作成されます。
最後に、データ フローのラッパーとして機能するパイプラインを作成する必要があります。[Integrate (統合)] タブの [+] ボタンを使用して新しいパイプラインを作成し、そこにデータ フローのアクティビティを追加し、このデータ フローが上記で作成したデータ フローと一致するよう設定します。3 つのデータ フローすべてを、連続するアクティビティとしてパイプラインに追加できます。結合順序の依存性が存在しないことを踏まえると、データ フローの順序は問題にならないはずです。データ フローとパイプラインを公開してプロセスを完了します。
パイプラインが公開されたら、パイプラインを実行することで読み込みプロセスを開始できます。パイプラインの実行は Synapse の [Monitor (監視)] タブで監視でき、データ量にもよりますが数分程度で完了します。実行が完了したら Azure Storage Explorer にアクセスして、レイクに読み込まれたデータを確認します。
Synapse を開き、左側からテーブルを選択し、[Select TOP 100 rows (上位 100 行を選択)] を選択すると、レイク データベースが期待どおりに動作していることを確認できます。これで、SQL Serverless の機能を使用し、専用の SQL クラスターを必要とせずにレイクのデータを表示できるようになります。
Power BI を使用して、
レイク DB からレポートを作成する
Synapse でレイク データベースを作成したら、Power BI の新しい Synapse コネクタを使用してダッシュボードの作成プロセスを簡素化します。この新しいコネクタは Azure Synapse Analytics (ベータ) と呼ばれ、Synapse ワークスペースへの直接接続を提供し、作成したレイク データベースから説明やリレーションシップなどのメタ データを取り込みます。Power BI デスクトップで [Get Data (データを取得)] を選択し、検索ボックスに「Synapse」と入力してコネクタを探します。
コネクタは、アクセス可能なすべての Synapse ワークスペースを読み込みますが、フィルタリングによって必要なものだけに絞り込むことができます。作成したデータベースを見つけたら、展開してテーブルを確認します。Power BI は、Synapse の各テーブルから説明情報を引き出します。テーブルにカーソルを合わせると各テーブルの説明を見ることができます。
また Power BI は、レイク データベースのリレーションシップ情報を使用して Power BI のデータ モデルのリレーションシップを設定します。これにより、元のレイク データベースを熟知しないビジネス ユーザーでも、レイクのデータを使って有意義なレポートを簡単に作成できます。
レイク データベースのスキーマが Power BI に読み込まれたら、ビジネスの重要な疑問を解き明かすダッシュボードの作成を開始できます。今回の場合は、チャネル別の合計収益を、高いパフォーマンスで分析できるようになりました。
まとめ
今回の記事で紹介したように、Azure Synapse Analytics の レイク データベースとデータベース テンプレートが提供する簡単かつ強力な方法によって、データ レイクに構造とセマンティクスを追加できます。これらのセマンティクス値を Power BI などその他のアプリケーションで利用することで、最高精度かつ最新のデータが確実に反映されたレポートを簡単に作成できるようになります。
Azure Synapse のデータベース テンプレートやレイク データベースの詳細については、以下のリンクをご覧ください。
• https://aka.ms/SynapseDatabaseDesignerDocumentation
• Azure Synapse Analytics のデータベース テンプレート – Microsoft Tech Community