ケーススタディ3 - Contoso, Ltd 2
概要
Contoso, Ltd.はシアトルに拠点を置く衣料品小売業者です。同社は全米に2,000店舗を展開し、オンラインストアも展開しています。
ネットワークにはcontoso.comというActive Directoryフォレストが含まれています。このフォレストはcontoso.comというAzure Active Directory (Azure AD)テナントと統合されています。Contosoはcontoso.comというAzure ADテナントに関連付けられたAzureサブスクリプションを保有しています。
既存の環境
トランザクションデータ
Contoso 社には、オンプレミスの複数の Microsoft SQL Server サーバーに保存された 100 億件のレコードで構成される 3 年分の顧客、取引、運用、調達、サプライヤー データが存在します。
SQL Server インスタンスには、さまざまなオペレーティング システムからのデータが含まれています。これらのデータは、SQL Server Integration Services (SSIS) パッケージを使用してインスタンスに読み込まれます。
すべての製品販売取引を会社全体の販売取引データセットに結合すると、取引ごとに 1 行ずつ、50 億行を含む単一のテーブルが生成されると見積もっています。
販売取引データを対象としたクエリのほとんどは、異なる期間にどの商品が実店舗で販売され、どの商品がオンラインで販売されたかを特定するために使用されます。3年以上前の販売取引データは毎月削除されます。
各小売店の住所を含む小売店テーブルを作成する予定です。テーブルのサイズは約2MBです。小売店の売上に関するクエリには、小売店の住所が含まれます。
プロモーションIDを含むプロモーションテーブルを作成する予定です。プロモーションIDは特定の商品に関連付けられ、商品は商品IDによって識別されます。テーブルのサイズは約5GBになります。
Twitterデータのストリーミング
Contoso 社の電子商取引部門では、同社の製品を参照するトレンドの Twitter フィードをキャプチャし、その製品を Azure Event Hubs にプッシュする Azure ロジック アプリを開発しています。
計画された変更と要件
計画された変更
Contoso は次の変更を実装する予定です。
* 販売取引データセットを Azure Synapse Analytics に読み込みます。
* SSIS パッケージを使用して、オンプレミスのデータ ストアを Azure Synapse Analytics と統合します。
* Azure Synapse Analytics を使用して Twitter フィードを分析し、製品に関する顧客の感情を評価します。
販売取引データセットの要件
Contoso は、販売トランザクション データセットに対して次の要件を特定しています。
* 販売取引記録を含むデータをパーティション分割します。パーティションは、月ごとに効率的なロードを提供するように設計する必要があります。境界値は右側のパーティションに属している必要があります。
* 製品 ID に基づいて販売取引レコードを結合およびフィルタリングするクエリができるだけ早く完了するようにします。
* 小売店の住所の変更に対応するために代理キーを実装します。
* データ ストレージのコストとパフォーマンスが予測可能であることを確認します。
* 古いレコードを削除するのにかかる時間を最小限に抑えます。
顧客感情分析の要件
Contoso は、顧客感情分析の次の要件を特定しています。
* Contoso ユーザーが Azure Synapse Analytics 専用 SQL プール内の PolyBase を使用して、Twitter フィードをホストするデータレコードのコンテンツをクエリできるようにします。データは行レベルセキュリティ (RLS) を使用して保護する必要があります。ユーザーは自身の Azure AD 資格情報を使用して認証される必要があります。
* 追加のスループットまたは容量ユニットを購入せずに、Event Hubs から Azure Storage への Twitter フィードの取り込みのスループットを最大化します。
* Event Hubs Capture を使用して、Twitter フィードを Azure Storage に保存します。フィードは Parquet ファイルに変換されます。
* データ ストアがオブジェクト レベルまでの Azure AD ベースのアクセス制御をサポートしていることを確認します。
* Twitter フィード データ レコードを維持するための管理作業を最小限に抑えます。
* 2 年以上前の Twitter フィード データ レコードを消去します。
データ統合要件
Contoso は、データ統合に関して次の要件を特定しています。
* 既存の SSIS パッケージを活用する Azure サービスを使用して、オンプレミスのデータを Azure Synapse Analytics の専用 SQL プールに格納されているデータセットに取り込み、データを変換します。
* 取り込みおよび変換アクティビティに対する変更をバージョン管理し、複数のデータ エンジニアが独立して開発できるようにするプロセスを特定します。
ホットスポットに関する質問
取引データ用の分析ストレージソリューションを設計する必要があります。このソリューションは、販売取引データセットの要件を満たす必要があります。
解決策には何を含めるべきですか? 回答するには、回答エリアで適切なオプションを選択してください。
注意: 正しい選択ごとに 1 ポイントが付与されます。

正解:

Explanation:
Box 1: Hash
Scenario:
Ensure that queries joining and filtering sales transaction records based on product ID complete as quickly as possible.
A hash distributed table can deliver the highest query performance for joins and aggregations on large tables.
Box 2: Round-robin
Scenario:
You plan to create a promotional table that will contain a promotion ID. The promotion ID will be associated to a specific product. The product will be identified by a product ID. The table will be approximately 5 GB.
A round-robin table is the most straightforward table to create and delivers fast performance when used as a staging table for loads. These are some scenarios where you should choose Round robin distribution:
When you cannot identify a single key to distribute your data.
If your data doesn't frequently join with data from other tables.
When there are no obvious keys to join.
Incorrect Answers:
Replicated: Replicated tables eliminate the need to transfer data across compute nodes by replicating a full copy of the data of the specified table to each compute node. The best candidates for replicated tables are tables with sizes less than 2 GB compressed and small dimension tables.
Reference:
https://rajanieshkaushikk.com/2020/09/09/how-to-choose-right-data-distribution-strategy-for- azure-synapse/