-1

私の会社では、Pentaho Kettle で ETL ジョブを毎日実行しています (私たちが持っているすべてのデータには 1 台のマシンで十分です)。つまり、次のことを意味します。

  • さまざまな、主に関係データベース、スプレッドシート、および API からのデータの読み取り
  • 変換の適用、Redshift へのデータの挿入
  • 外部 SAAS ツールへの API 呼び出しの実行

より高度なツールでやり直すことを計画しています。これにより、次のことが可能になります。

  • dw を 1 日 1 回よりも頻繁に更新する
  • 私たちが使用するSAAS APIへのデータの取得とプッシュが簡単になります(PentahoでJSONを処理して構成するのは面倒です)
  • ワークフローで他のワークロードをトリガーできるようにする (Python スクリプトなど)
  • EC2 マシンで実行されている機械学習パイプラインを同期する
  • 1 年で 5 倍のデータ スケールに備える (1 台のマシンでは不十分な場合があります)

私の頭に浮かぶのは、ワークフロー マネージャーとしての Luigi または Airflow であり、Python を使用してコード ベースの ETL を実行しているのでしょうか。インフラストラクチャ全体が AWS クラウド上にあるため、AWS Glue もオプションとして表示されるようになりました (これが etl 専用なのか、それとも含める予定の他のプロセスにも使用できるのかはわかりません)。

他の解決策はありますか?これらを使用した経験のある人はいますか (特に、将来のスパーク/キネシス ワークロードでトリガーされる可能性のある redshift、s3 との連携方法)?

はいの場合、使用するライブラリは何ですか?また、開始して学習するのに適した場所は何ですか?

4

1 に答える 1

3

申し訳ありませんが、このような質問にお答えすることはほとんど不可能です。会社もチームもそれぞれ違います。私たちにとってうまくいくことが、必ずしもあなたにとってうまくいくとは限りません。

ただし、いくつかの一般的なアドバイスを提供できます。

あなたの強みを発揮してください。チームが強力な C# コーダーでいっぱいの場合は、python を選択しないでください。SQL Server の内外の知識があり、ETL ツールを選択している場合。

計画。これが最も重要なステップです。新しい ETL ソリューションがどのように機能するかを完全に分析し、文書化したことを確認してください。すべての複雑な問題を事前に特定して解決することで、開発期間が短縮され、より整然としたソリューションが得られます。核心を理解することは、提供されているさまざまなツールやフレームワークを評価するのにも役立ちます。このプロセスの最後に、次のことを知っておく必要があります。

  • 開発にかかる時間。
  • ETL ツールに必要な機能。
  • ETL をどのように編成/監視/更新するか。
  • 主なマイルストーンは何か。

適切に計画すれば、どのテクノロジーを使用しても問題ありません。

プロトタイプとテスト。ツールやフレームワークを初めて使用する場合は特に重要です。少なくとも、アプローチにコミットする前に主要な機能をテストしてください。私がかつて働いていた会社は、ETL ソリューションに数万ポンドを費やしました。インストールした翌日、CRM ツールがサポートされていないことがわかりました。回避策が見つからず、2 つ目の ETL ツールを購入せざるを得なくなりました。非常に高価な間違い。

動いているターゲットを狙わないでください。理想的には、新旧の ETL システムがまったく同じソース データを使用し、まったく同じレポート テーブルに入力する必要があります。これにより、テストが大幅に簡素化されます。これにより、デュアルランが可能になります。これにより、必要に応じて古いソリューションに戻すことができます。リリース 2 用に新しい機能を保存します。

コード。他のすべてのステップが完了するまで、コードを書かないでください (プロトタイプ/テストは別として)。問題を完全に理解すると、コードは (ほとんど) 自分自身を記述します。

文脈のために; 私は、大規模な多国籍企業の 30 億レコード データ ウェアハウスを管理しています。私はあなたに警告しているすべての間違いを犯しました。

于 2017-08-29T13:03:33.020 に答える