DBとストレージ領域のステージングテーブル

DhruvJoshi

通常、SSISを介したオンプレミスのSQLサーバーETLワークフローでは、どこからでもデータをステージングテーブルにロードし、検証と変換を適用して、それらをダウンストリームのデータウェアハウステーブルにロード/マージします。

私の質問は、Azureで同様のことを行う必要があるかどうかです。AzureSQLデータベースにステージングテーブルとダウンストリームテーブルのセットがあるか、ステージングとしてazureストレージ領域を使用し、そこからADFを介して最終的なダウンストリームテーブルにデータを移動します。

ワイルドに思えるかもしれませんが、ADFを使用して移動するステージングデータベースとダウンストリームデータベースを別々にするという提案もあります。

コナーカニングハムMSFT

データ移動パイプラインを実行するためのさまざまなモデルがあり、完璧なモデルはありません。アプリケーションの決定に役立つ場合に備えて、私が目にする一般的なパターンについていくつかコメントします。

データをステージングしてディメンションを作成しようとしている多くのデータウェアハウスでは、生のソースデータを生データとして他のデータベース/テーブルにロードし、挿入したい形式に処理するプロセスがよくあります。ファクトテーブルとディメンションテーブル。このプロセスは、データの到着が遅れたり、データが後日修正されたりする可能性があるため、複雑になります。そのため、これらのシステムは、ターゲットファクトテーブルのパーティションテーブルを使用して設計され、パーティションに相当するデータを再処理できるようになっています(例:1日)ファクトテーブル全体を再処理する必要はありません。さらに、データ自体がDWでの表現方法から遠く離れた形式で提供されている場合、そのステージングテーブルでの変換プロセスは集中的になる可能性があります。多くの場合、オンプレミスシステムでは、これらは、本番システムから分離するために、別のデータベース(場合によっては同じSQL Server上)で処理されます。さらに、これらのステージングテーブルが元のソースデータ(CSVファイルなど)から再作成できる場合もあるため、そのソースマテリアルのレコードの保存場所ではありません。これにより、そのデータベースで単純なリカバリモードを使用することを検討できます(これにより、完全リカバリと比較して、ログIO要件とリカバリ時間が短縮されます)。すべてのDWが処理されたDWデータに完全復旧モードを使用するわけではありませんが(パイプラインが存在するため、代わりに2台目のマシンにデュアルロードを実行するものもあります)、SQL Serverで完全復旧と物理ログレプリケーション(AlwaysOn可用性グループ)を使用する機能により、世界のさまざまな地域でデータベースのディザスタリカバリコピーを作成する柔軟性。(必要に応じて、そのサーバーでクエリ読み取りスケールアウトを実行することもできます)。この基本モデルにはさまざまなバリエーションがありますが、多くのオンプレミスシステムにはこのようなものがあります。

SQL Azureを見ると、同等のモデルをセットアップする方法を検討する際に重要ないくつかの類似点といくつかの相違点があります。

  1. すべてのユーザーデータベースで完全なリカバリがあります(ただし、tempdbは単純なリカバリです)。また、v-coreまたはプレミアムデータベースを使用する場合は、N個のレプリカ(可用性グループなど)への変更をクォーラムコミットします。これは、パブリッククラウドシステムとカスタムシステムでより一般的なネットワークトポロジを使用していることが多いためです。自分で構築します。つまり、ログのコミット時間は現在のシステムよりも遅い場合があります。バッチシステムの場合、必ずしもそれほど重要ではありませんが、アプリケーションで常にネットワークを待機しないように、十分な大きさのバッチサイズを使用するように注意する必要があります。ステージングテーブルがSQLAzureデータベースでもある可能性があることを考えると、クォーラムコミットもあることに注意する必要があるため、どのデータが毎日(SQL Azure DBにとどまる)と比較して検討する必要があります。 。
  2. 現在、SQL AzureにはDB内リソースガバナンスモデルはありません(部分的で、DWとは異なるユースケースを対象とするエラスティックプールを除く)。したがって、個別のステージングデータベースを用意することは、本番ワークロードをステージングデータベースの処理から分離するため、良い考えです。ロードしたいその日のデータの処理によって影響を受けるプライマリプロダクションワークロードでのノイズの多いネイバーの問題を回避します。
  3. オンプレミスDW用にマシンをプロビジョニングする場合、ワークロードや潜在的に他の多くのワークロードをホストできる十分な大きさのストレージアレイ/ SANを購入することがよくあります(統合シナリオ)。SQLAzureのプレミアム/ vコアDBはローカルSSDでセットアップされます(Hyperscaleは、いくつかの点でSANに少し似ているクロスマシンスケールアウトモデルを提供する新しい追加です)。したがって、本番システムとステージング/ロードプロセスに必要なIOPSについて検討する必要があります。ワークロードとコストをより適切に管理するために、これらのそれぞれをスケールアップ/スケールダウンすることを選択できます(事前に構成された大規模なストレージアレイのCAPEX購入とは異なり、ワークロードをそれに合わせて調整します)。
  4. 最後に、SQLAzureとは少し異なる動作をするSQLDWオファリングもあります。これは、より大きなDWワークロード用に最適化されており、スケールアウトコンピューティングを備えており、スケールアウト/スケールダウンも可能です。ワークロードのニーズに応じて、それがより適切である場合は、最終的なDWターゲットとしてそれを検討することをお勧めします。

元の質問にたどり着くには、SQL Azureでデータロードパイプラインを実行できますか?はい、できます。オンプレミスでの既存の経験と比較していくつかの注意点がありますが、それは機能します。公平を期すために、ステージングテーブルを使用せずにCSVファイルなどから直接ロードする人もいます。多くの場合、それらはそれほど多くの変換を行わないため、YMMVはニーズに基づいています。

お役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

gitdiscardは特にステージング領域の変更

分類Dev

ステージング領域のファイルにgitdiffを表示する

分類Dev

CSSとHTML:マウストラッキングでテーブルの領域をマークします

分類Dev

カスタムプログレスバーSVGのパーセンテージ領域を埋める

分類Dev

MarkLogicの物理ストレージ領域

分類Dev

プログレスバーのテキスト領域

分類Dev

ステージング領域の新しいファイルをGitの作業ディレクトリにリセットする

分類Dev

表領域セグメントとスキーマオブジェクト

分類Dev

タルムードページのテキスト領域を特定する

分類Dev

「git add」なしの「git commit --amend」/ステージング領域の変更

分類Dev

SnowFlakeで動的にテーブルを作成します(ステージング領域からのJSONデータを使用)

分類Dev

サブモジュールの更新を検出し、ステージング領域または作業ディレクトリでハッシュを取得するためのGit配管コマンド

分類Dev

複数ページ(aspx)テーブルのスクレイピングと解析

分類Dev

ステージング領域はgitcloneの一部として複製されていますか?

分類Dev

コミットをgitのステージング領域にどのように移動しますか?

分類Dev

Linux仮想アドレスのページテーブルビット(4レベルのページング)

分類Dev

ASP.NETCoreでのテーブルストレージとDBContext

分類Dev

CloudStorageAccountとCloudTableforAzureテーブルストレージのモック

分類Dev

固定幅のサイドバーと流体幅のメインコンテンツ領域とスージー

分類Dev

jGit-すべてのファイルをステージング領域に追加する方法

分類Dev

コンテンツの読み込み中のウィジェット領域のプレースホルダー

分類Dev

探している物理ページがスワップ領域にある場合のページテーブルコンテンツ

分類Dev

空き領域をファイルシステムパーティションとマージする方法は?

分類Dev

テーブルストレージSDK

分類Dev

JavaScriptプログラムのラベルが付いたWebページが他のラベル/テキスト領域と整列していません

分類Dev

HTMLページのテキストとテーブルをレスポンシブにする方法(javascriptを使用)

分類Dev

Azureテーブルストレージのアップグレード

分類Dev

ブートストラップページダウンのマークダウンを逆にするテキスト領域の編集

分類Dev

Oracle RPDの特定のサブジェクト領域で特定のプレゼンテーションテーブルへのアクセスを制限するにはどうすればよいですか?

Related 関連記事

  1. 1

    gitdiscardは特にステージング領域の変更

  2. 2

    ステージング領域のファイルにgitdiffを表示する

  3. 3

    CSSとHTML:マウストラッキングでテーブルの領域をマークします

  4. 4

    カスタムプログレスバーSVGのパーセンテージ領域を埋める

  5. 5

    MarkLogicの物理ストレージ領域

  6. 6

    プログレスバーのテキスト領域

  7. 7

    ステージング領域の新しいファイルをGitの作業ディレクトリにリセットする

  8. 8

    表領域セグメントとスキーマオブジェクト

  9. 9

    タルムードページのテキスト領域を特定する

  10. 10

    「git add」なしの「git commit --amend」/ステージング領域の変更

  11. 11

    SnowFlakeで動的にテーブルを作成します(ステージング領域からのJSONデータを使用)

  12. 12

    サブモジュールの更新を検出し、ステージング領域または作業ディレクトリでハッシュを取得するためのGit配管コマンド

  13. 13

    複数ページ(aspx)テーブルのスクレイピングと解析

  14. 14

    ステージング領域はgitcloneの一部として複製されていますか?

  15. 15

    コミットをgitのステージング領域にどのように移動しますか?

  16. 16

    Linux仮想アドレスのページテーブルビット(4レベルのページング)

  17. 17

    ASP.NETCoreでのテーブルストレージとDBContext

  18. 18

    CloudStorageAccountとCloudTableforAzureテーブルストレージのモック

  19. 19

    固定幅のサイドバーと流体幅のメインコンテンツ領域とスージー

  20. 20

    jGit-すべてのファイルをステージング領域に追加する方法

  21. 21

    コンテンツの読み込み中のウィジェット領域のプレースホルダー

  22. 22

    探している物理ページがスワップ領域にある場合のページテーブルコンテンツ

  23. 23

    空き領域をファイルシステムパーティションとマージする方法は?

  24. 24

    テーブルストレージSDK

  25. 25

    JavaScriptプログラムのラベルが付いたWebページが他のラベル/テキスト領域と整列していません

  26. 26

    HTMLページのテキストとテーブルをレスポンシブにする方法(javascriptを使用)

  27. 27

    Azureテーブルストレージのアップグレード

  28. 28

    ブートストラップページダウンのマークダウンを逆にするテキスト領域の編集

  29. 29

    Oracle RPDの特定のサブジェクト領域で特定のプレゼンテーションテーブルへのアクセスを制限するにはどうすればよいですか?

ホットタグ

アーカイブ