web-dev-qa-db-ja.com

ステージングと本番DWHの違い

データウェアハウスアーキテクチャに関する一般的な質問があります。多くのステージングとプロダクションを聞いたので、データは最初にSSISを介してステージングdwhにロードし、次にSSISを介してプロダクション環境にロードする必要があります。

しかし、違いはありますか?つまり、本番データウェアハウス(本番環境にプッシュする前にデータの品質チェックを行うため)の "コピー"のみ、または別のモデルまたは(別のスキーマ)のソースデータの "コピー"のみですか。

ソフトウェア開発の観点からは、どちらも同じであり、唯一の目的は、すべての関係者からのソフトウェアバージョンを確認し、リリースを製品にデプロイすることです。通常、ソフトウェアの場合、ステージングは​​本番環境と同じです(ハードウェアのサイズのみが異なる場合があります)。

3
STORM

一般に、「ステージ」または「ステージング」は、プレゼンテーションレイヤーで最終的な形式にされる前の、データの一種の中間の場所または「保持領域」です。 (ご使用の環境(サーバーなど)内では、個々のセットアップに応じて、同じサーバー上にある場合も、最終的なフォーマットとは異なる場合もあります。通常、少なくとも同じサーバー上の異なるデータベース内にあります。)

重要な点は、「ステージング」は通常、データ(DWHへの取り込み内容に応じて、さまざまなソースからのものである可能性があります)が最初に着陸し、次に最終的な形式に処理される場所であるということですあなたのビジネスユーザーによって消費されました。

最小限のケースでは、それをプッシュする前の本番の「コピー」にすぎませんが、通常、本番に移行する前に次のような追加の処理が実行されます。

  • 生データを次元に変換する
  • グループ化と集計
  • クリーニング(例:欠損値の処理方法)

ステージングは​​、一般的なソフトウェア開発の場合とは異なるデータウェアハウジングでの意味を持っています(UATと本番環境の間には、本番環境と同じですが、シミュレートされたコピーである「ステージ」環境が存在します)。

私(DWH)の経験では、ステージングは​​通常、生データと非常によく似た形式です。ソースサーバーに「アカウント」がある場合、ステージングデータベースに「StageAccount」があり、StageAccountでさらにいくつかの処理を実行して、それを(たとえば)DimAccountレコードに変換します。

3
seventyeightist

これは、同じ言葉を使って2つの異なることを説明している場合だと思います。

最初はステージング環境です。ご指摘のとおり、これは本番環境のアーキテクチャに近いコピーであり、本番環境に移行する予定のリリースをテストしたり、リリース前にユーザーが今後の機能を表示したりするために使用できます。

2番目は、データステージング領域です。これはステージングと呼ばれますが、実際には運用環境内に配置することもできます(これまで私が働いていたほとんどの企業でそうでした)。この領域は、データウェアハウスにロードされる前に、OLTPシステムから抽出されたデータをクレンジングおよび検証するために使用されます。

一般に、少なくとも私の作業履歴では、生産データがstaging environmentにコピーされない可能性があることがわかりました法的または物流上の制約。ほとんどの場合、開発者/テスターが個人情報やクレジットカードなどの機密データにアクセスしてはならないことが原因であることがわかりましたが、データウェアハウスにロードする準備としてデータステージング領域にコピーできます。

時間が経つにつれ、経験を重ねるにつれて、個人がどれを参照しているかがわかりやすくなります。それまでは、ライブデータが本番環境から出てはならず、本番環境内に専用の領域があっても問題ないことに注意してください。データを処理できます。

10
Mr.Brownstone

SF開発者として、あなたが説明しているこの種のことに関してはプロセスがあります。最初に、システムへの直接の変更にstagingを使用せず、参照されたJiraチケット番号で新しいサンドボックスを作成します(例:SALLY-369)。

データとメタデータがあることにも触れておきたいと思います。単なるデータ変更であるチケットを取得したら、それをstagingに直接実行します。そして、すべてが明確になったら、ライブシステムに何でも作成します。

次に、少なくとも私たちの会社がチケットが作成されたときにstagingの直接コピーである新しいサンドボックスを作成しますが、-staging、その後、サンドボックスで変更が行われたときに新しく作成されたサンドボックスで変更を行い、テストのためにプッシュインstagingに進みますステージングのみを使用しますテスト/利害関係者向け

これを行う理由は、変更が行われた場合に上書きされるためです[〜#〜] direct [〜#〜] into stagingこれは非効率的で全体的に悪い習慣です。

production、私はあなたがliveシステムについて話していると思います(本番環境はstagingであるか、または同じカテゴリに属しているためライブである可能性があるため) )Liveは古いバージョンのステージングですが、Liveは顧客向けであるため、数週間ごとにリリースが行われます(これがstagingの日付です)分析され、実行に問題がないと見なされたため、ライブ配信されます。

これがプロセス全体の流れです。intについては心配しないでください。ステージングの派生物であり、ステージングへの構築の最初のステップです。

- 1. Sandbox
- 2. int
- 3. staging(UAT/production)
- 4. Live (production)

そうでない場合は、これで問題が解決することを願っています。これに返信してください。詳しく説明させていただきます。

0
Harry Smith