ステージング領域、またはランディングゾーンは、抽出、変換、ロード(ETL)プロセス中にデータ処理に使用される中間ストレージ領域です。データステージング領域は、データソースとデータターゲット(多くの場合、データウェアハウス、データマート、またはその他のデータリポジトリ)の間に位置します。[ 1 ]
データステージング領域は、多くの場合一時的なものであり、ETLプロセスを実行する前、またはETLプロセスが正常に完了した直後にその内容が消去されます。このようなステージング領域は、一時ステージング領域(TSA)と呼ばれることもあります。
ただし、アーカイブやトラブルシューティングの目的でデータを長期間保持するように設計されたステージングエリアアーキテクチャも存在します。永続ステージングエリア(PSA)は、データウェアハウス内のステージングエリアの一種で、ソーステーブルまたはクエリの変更履歴全体を追跡します。[ 2 ]
ステージング領域は、リレーショナルデータベースのテーブル、ファイルシステムに格納されたテキストベースのフラットファイル(またはXMLファイル)、またはファイルシステムに格納された独自の形式のバイナリファイルの形で実装できます。[ 3 ]ステージング領域のアーキテクチャは、ターゲットデータベース内の単純なリレーショナルテーブルのセットから、自己完結型のデータベースインスタンスまたはファイルシステムまで、複雑さが異なります。[ 4 ] ETLプロセスでサポートされるソースシステムとターゲットシステムはリレーショナルデータベースであることが多いですが、データソースとターゲットの間にあるステージング領域もリレーショナルデータベースである必要はありません。[ 5 ]
ステージング領域は多くの利点をもたらすように設計できますが、その主な目的は、ETLプロセスの効率向上、データ整合性の確保、およびデータ品質管理業務のサポートです。ステージング領域の機能には、以下のものが含まれます。
ステージングエリアが果たす主要な機能の 1 つは、複数のソース システムからのデータの統合です。[ 3 ]この機能を実行する際、ステージングエリアは、複数のソース システムからのデータを一時的に配置してさらに処理できる大きな「バケツ」として機能します。ステージングエリア内のデータには、データの出所を示す追加のメタデータと、データがステージングエリアに配置された日時を示すタイムスタンプをタグ付けするのが一般的です。
データの整合には、複数のソースシステム間での参照データの標準化と、異なるソースからのレコードとデータ要素間の関係の検証が含まれます。[ 3 ]ステージング領域でのデータ整合は、マスターデータ管理機能と密接に関連し、それをサポートする機能です。[ 6 ]
ステージング領域と、そこでサポートされるETLプロセスは、多くの場合、ソースシステム内での競合を最小限に抑えることを目的として設計されています。ソースシステムからステージング領域へ必要なデータを一度にコピーする方が、個々のレコード(または少数のレコード)を個別に取得するよりも効率的な場合が多くあります。この方法は、データストリーミング技術などの技術的な効率性を活用し、ソースシステムへの接続の切断と再確立の必要性を最小限に抑えることでオーバーヘッドを削減し、マルチユーザーソースシステムにおける同時実行ロック管理を最適化します。ソースシステムからソースデータをコピーし、ステージング領域で集中的な処理と変換を実行するまで待機することで、ETLプロセスは処理中の同時実行の問題を高度に制御できます。
ステージング領域は、独立したスケジュールで処理されるデータや、複数のターゲットに送信されるデータのホスティングをサポートできます。[ 3 ]場合によっては、データを異なる時間にステージング領域に取り込んで、一度に保持および処理することがあります。たとえば、毎晩、複数のタイムゾーンでエンタープライズ処理が行われる場合、このような状況が発生する可能性があります。その他の場合、データを異なる時間にステージング領域に取り込んで処理したり、ステージング領域を使用してデータを複数のターゲットシステムにプッシュしたりすることがあります。たとえば、日々の運用データは運用データストア (ODS)にプッシュされ、同じデータは月次集計形式でデータウェアハウスに送信されることがあります。
ステージング領域は、対象システムに対する効率的な変更検出操作をサポートします。この機能は、ソースシステムがシステムによるタイムスタンプ、変更追跡、変更データキャプチャ(CDC)などの信頼性の高い変更検出方式をサポートしていない場合に特に役立ちます。
データクレンジングには、ソースシステムから無効なデータを特定して削除(または更新)することが含まれます。ステージング領域を利用するETLプロセスは、「無効な」データを識別して処理するためのビジネスロジックを実装するために使用できます。無効なデータは、多くの場合、ビジネスルールと技術的な制約の組み合わせによって定義されます。さらに、データの妥当性ルールを強制するために、ステージング領域の構造に技術的な制約(リレーショナルデータベースのテーブル制約など)が課される場合もあります。[ 3 ]
集計値の事前計算、複雑な計算、複雑なビジネスロジックの適用は、対象システムでの要約レポートに対する応答性の高いサービスレベル契約(SLA)をサポートするために、ステージング領域で行うことができます。[ 4 ]
データアーカイブは、ステージング領域で実行することも、ステージング領域によってサポートされることもできます。このシナリオでは、ステージング領域はロード処理中に履歴レコードを保持するために使用することも、ターゲットアーカイブ構造にデータをプッシュするために使用することもできます。さらに、ETL プロセスの技術的なトラブルシューティングをサポートするために、データはステージング領域内に長期間保持される場合があります。[ 4 ]