11

私はETLを(mongodbバックエンドを備えたpythonで)書いていますが、疑問に思っていました.ETLをETLと呼ぶ必要がある標準関数とツールは何ですか?

この ETL は、スクリプト可能でモジュール化されたアプローチにより、可能な限り汎用的なものになります。ほとんどの場合、さまざまなデータベースの同期を維持し、さまざまな形式 (xml および csv) でデータセットをインポート/エクスポートするために使用されます。多次元ツールは必要ありませんが、後で必要になる可能性があります。

4

3 に答える 3

16

ETL の使用例について少し考えてみましょう。

  1. エキス。
    • 汎用 DB-API アダプターを介してデータベースを読み取ります。
    • 同様のアダプタを介してフラット ファイルを読み取ります。
    • 同様のアダプターを介してスプレッドシートを読み取ります。
  2. 清める。
    • 任意のルール
    • フィルタリングして拒否
    • 交換
    • データの列を追加する
  3. プロファイル データ。
    • 統計頻度表。
  4. 変換 (クレンジングを参照してください。これらは同じ実装の 2 つの使用例です)
  5. 寸法適合性検索を行います。
    • 値を置き換えるか、値を追加します。
  6. 集計。
    • パイプラインの任意の時点で
  7. ロード。
    • または、フラットファイルを準備し、DB 製品のローダーを実行します。

さらに、単一のユース ケースではない追加の要件がいくつかあります。

  • 個々の操作はそれぞれ、Unix パイプラインで接続できる個別のプロセスである必要があり、個々のレコードはプロセスからプロセスへと流れます。これにより、すべての CPU リソースが使用されます。

  • ETL の前提条件を判断するのが難しい場所には、ある種の時間ベースのスケジューラが必要です。

  • ETL 処理ステップの前提条件を把握できる場所には、イベントベースのスケジュールが必要です。

ノート。ETL は I/O バウンドであるため、複数のスレッドはあまり役に立ちません。各プロセスは長時間実行されるため (特に処理するデータが何千行もある場合)、「重い」プロセスのオーバーヘッドは問題になりません。

于 2009-08-24T10:26:51.877 に答える
4

以下は順不同のランダムなリストです。

  1. すべての主要なリレーショナル データベースを含む、幅広いソースに接続します。
  2. テキスト ファイル、Excel、XML などの非リレーショナル データ ソースを処理します。
  3. 複数のソースを単一のターゲットにマップできるようにします。
  4. ソース フィールドからターゲット フィールドへのマッピングを支援するツールを提供します。
  5. 自由に変換を注入するためのフレームワークを提供します。
  6. 複雑な変換を記述するためのプログラム可能な API。
  7. 読み込みプロセスを最適化して速度を向上させます。
于 2009-08-24T09:49:33.870 に答える
0

列名の自動/ヒューリスティック マッピング。単純な文字列マッピングの例:

DB1: 顧客 ID

DB2: customer_id

DTS / SSIS で行った作業の多くは、自動的に生成できたはずです。

  • 必ずしも「必要な機能」ではありませんが、実際に多くのユーザーを非常に満足させます。
于 2009-08-24T11:38:42.293 に答える