企業が重要な意思決定情報をビジネスユーザーに提供することを妨げる最も重大な間違いの1つは、1つ以上のデータソースから信頼できるデータがなく、1つの場所に収集され、整理されて使用できるように準備されていることです。
このシナリオを想像してみてください。あなたは、米国全土に小売店を構える携帯電話ケース会社のITマネージャーです。情報は入手可能ですが、場所や形式が異なるため、取締役会は売上高に基づいて意思決定を行うのに苦労しています。取締役の1人が、次の取締役会で提示するために、すべてのPOSからの販売情報を含むダッシュボードを生成するように依頼します。
フォーマットや構造が異なるため、情報を統合することはほとんど不可能であることはすでにご存知でしょう。一部の小売キオスクは、引き続きOracleデータベースで独自のシステムを使用しています。大規模な店舗では、新しいSalesforceシステムを使用しています。システム移行中に運用を開始した最新のキオスクは、売上の計算に使用されるスプレッドシートを共有しています。
さまざまな場所、形式、構造のすべてのデータをどのように照合して一意にするか データベース ダッシュボード生成のためにアクセスする準備はできていますか?
ETLは 抽出、変換、 そして 負荷 。 ETLは、この複雑なデータストアを整理された信頼性の高い複製可能なプロセスに変換するように設計されたプロセスのグループであり、企業が既存のデータでより多くの売上を生み出すのに役立ちます。
この例では、Oracleデータベース(ほとんどのキオスク)、Salesforce(ストア)、およびスプレッドシート(新しいキオスク)からデータを受け取り、データを抽出し、必要に応じて変換して、単一にロードします。 データウェアハウスデータベース レポートツールからアクセスし、ダッシュボードとスコアカードを生成するために使用します。
ETLの3つのステップに飛び込んで、プロセスを詳しく説明しましょう。
恒久的な給与計算機との契約
抽出は、単一または複数のソースからデータを受信するプロセスです。ソースは、ドキュメント、スプレッドシート、CSVファイル、フラットファイル、Oracle、MySQL、SQL Serverなどのリレーショナルデータベース、非リレーショナルデータベースなど、さまざまな形式と構造を持つことができます。
抽出には主に2つのタイプがあります。 フル そして 部分的 。
これらの側面に加えて、完全抽出と部分抽出のどちらかを選択する際には、他の考慮事項がいくつか必要です。そのうちの1つについて説明します。 データの可用性と整合性 。
これは、完了したトランザクションのみが抽出の対象と見なされ、整合性障害を引き起こす可能性のあるデータが排除されることを意味します。たとえば、10の質問でエンジニアの知識を特定するためのオンラインテスト。エンジニアがテストの途中で、いくつかの質問に回答したがまだ終了していない場合、抽出プロセスは未完了のテストから質問を読み取ることができません。整合性障害を引き起こす可能性があります。
データを抽出した後、変換プロセスを開始できます。ビジネスルールと技術基準に従ってデータをクリーンアップ、操作、変換して、許容可能なレベルのデータ品質を維持します。
いくつかの要因によっては、ステージング領域の使用が必要になる場合があります。ステージング領域は、変換されるデータソースから抽出されたデータを一時的に格納するために使用される中間ストレージスペースです。
一部のプロジェクト(通常はデータ量が少ないプロジェクト)では、ステージング領域を使用する必要はありませんが、ほとんどのプロジェクトではステージング領域を使用します。
変換フェーズ中に実行されるタスクの範囲は次のとおりです。
一般的な変換タイプは次のとおりです。
法人とパートナーシップの違い
最後になりましたが、ETLの最後のプロセスは、データを宛先にロードすることです。ロードとは、変換されたデータ(ステージング領域からかどうかに関係なく)をリポジトリ(通常はデータウェアハウスデータベース)に挿入することです。
データの読み込みには、フルまたは初期、増分、更新の3つの主要なタイプがあります。
要約すると、すべての企業は、規模に関係なく、ETLプロセスを使用して、既存の情報を統合し、意思決定のためにさらに豊富な情報を生成して、以前は使用できなかったデータを新しい収益源に変えることができます。
テストはETLの最も重要なフェーズの1つですが、それでも最も見過ごされているフェーズの1つです。
さまざまなソースや構造からのデータを変換してデータウェアハウスにロードすることは非常に複雑であり、エラーが発生する可能性があります。最も一般的なエラーは、上記の変換フェーズで説明されています。
データの正確さは成功の鍵ですが、不正確さは災害のレシピです。したがって、 ETLの専門家 プロセス全体を通じてデータの整合性を保証するという使命があります。各フェーズの後に、テストを実行する必要があります。単一のソースからデータを抽出する場合でも、複数のソースからデータを抽出する場合でも、データをチェックしてエラーがないことを確認する必要があります。
変換後も同じことを行う必要があります。たとえば、変換フェーズでデータを要約する場合、データが失われておらず、合計が正しいことを保証するためにデータをチェックする必要があります。
変換されたデータをデータウェアハウスにロードした後、テストプロセスを再度適用する必要があります。ロードされたデータは、変換されたデータと比較され、その後、抽出されたデータと比較される必要があります。
携帯電話ケース会社の例では、3つの異なるソース(独自のOracleデータベース、Salesforce、およびスプレッドシート)と異なる形式を使用しています。テストフェーズでは、元のソースからのサンプルデータを使用し、それらをステージング領域にあるデータと比較して、エラーなしで抽出が行われたことを確認できます。
サンプルデータ(この場合は、3つの異なる場所(店舗、古いキオスク、新しいキオスク)からの販売情報)を元のソースと比較します。違いがある場合は、それらを分析して、許容できるかどうか、またはエラーであるかどうかを確認する必要があります。
エラーが見つかった場合は修正する必要があり、修正する必要がある場合はいくつかの決定を行う必要があります。 元のデータを変更する必要がありますか?そうすることは可能ですか?元のソースでエラーを修正できない場合、何らかの変換によってエラーを修正できますか?
場合によっては、エラーのあるデータを削除し、担当者に通知するアラートをトリガーする必要があります。
いくつかのテスト例:
ETLプロセスのログ記録は、保守が容易で修正が容易なシステムを確実に提供するための重要な要素です。
正しいロギングプロセスを備えたETLは、ETL操作全体を常に改善された状態に保ち、チームがデータソース、データ形式、変換、宛先などのバグや問題を管理するのに役立つために重要です。
堅牢なログプロセスにより、チームは時間を節約して問題をより迅速かつ簡単に特定でき、リードエンジニアは問題を直接特定するために必要な時間を短縮できます。大量のデータを抽出している最中にエラーが発生することがあり、ログがないと問題を特定するのが難しく、ほとんど不可能な場合もあります。ログがない場合は、プロセス全体を再実行する必要があります。チームはログを使用して、問題の原因となったファイルと行を迅速に特定し、そのデータのみを修正できます。
マイクロソフト紺碧の機械学習スタジオ
ログがそれほど重要ではないことを私が想像できる唯一のケースは、プロセスが手動で実行され、手動で監視できる少量のデータがある非常に小さな自動化されていないシステムの場合です。
ログは自動化を改善します。自動的に実行される大量のデータを使用するETLプロセスには、ログシステムが必要です。それらが適切に計画され実行されている場合、ログシステムの構築に注がれるすべての努力は、より高速なエラー識別、より信頼性の高いデータ、およびログファイルにある改善点の形で利益をもたらします。
ログシステムの作成には、主に3つのステップがあります。 生成、アーカイブ、 そして 分析する 。
ETLプロセスは大量のデータを処理でき、セットアップに費やした時間とデータの処理に必要な計算リソースの両方の点で多くのコストがかかる可能性があります。統合を計画するとき、エンジニアは使用されるすべてのデータの必要性を念頭に置く必要があります。最善の方法は、無駄なデータを移行するだけで時間とお金を費やすのではなく、最小限のデータで作業して目的を達成することです。また、データ量は時間の経過とともに増加する傾向があるため、将来のニーズを考慮してください。
ロギングシステムの設計にはどのくらいの努力が必要ですか?
これは、処理されるデータの量や頻度など、さまざまな要因によって異なります。データが少ない小規模なシステムは、高度なロギングシステムに投資することなく、手動で管理できます。
c ++ 11をコンパイルする方法
大量のデータ、多くの異なるプロセス、異なるデータソースと形式、および複雑なパイプラインを持つ企業は、ロギングシステムの作成に投資する必要があります。すでに述べたように、優れたログシステムは多くの時間とお金を節約できます。
より明白なアプローチを得るには、会社の規模、データの量、統合の頻度に関係なく、ETLプロセスは次のようにする必要があります。 有益 。エコノミストのミルトンフリードマンが言ったように、時間、お金、技術リソースへの投資は利益を生み出さなければなりません。「無料の昼食はありません。」
要約すると、ETLプロセスは、企業がすでに持っているデータで利益を増やすのに役立ちますが、それは正しい方法で使用されていません。 ETLパイプラインは、さまざまなシステム、重要な情報を含むスプレッドシート、およびさまざまな部門や支店に分散しているデータの他の部分を統合できるため、組織はデータを最大限に活用できます。
ETLは、Extract、Transform、およびLoadの略です。
ETLは単一のプロセスではありませんが、データの複雑なストアを組織化された信頼性の高い複製可能なプロセスに変換して、既存のデータをより効率的に使用できるように設計されたプロセスのグループです。
ETLはさまざまなソースからのデータを統合し、それをデータウェアハウスで使用される形式に変換するため、データの品質と一貫性が向上します。
元のソースや形式に関係なく、データが統合され、共通の形式に変換されるようにすることによって。