ETL 導入のベストプラクティス
優れた ETL 設計の鍵は、性能と精度です。性能は基盤となるインフラに依存することが多いため、増大する負荷に柔軟に対応し、それに対応できるデータ・ウェアハウスを持つことが重要となります。構造化データは、テーブルの制約が多いため、変換に時間がかかることがよくあります。しかし、FlashArray などのソリューションは、大規模なデータ・インポート用に構築されており、オンプレミスのパイプラインの迅速な実行を保証します。
ETL プロセスは常に、規模や未知のものにあわせて設計します。変換できないレコードを最終的にインポートする可能性は非常に高いです。エラーはログに記録し、記録を保存して詳細に確認する必要があります。これは、ETL にバグがあったり、ETL コードの変更で修正できるエッジ・ケースが設計で見落とされたりすることを意味します。
全ての ETL プロセスが物理サーバーで動作するわけではないため、Portworx などのソリューションは、仮想化およびコンテナ化されたデータベースや分析を処理します。コンテナ化されたサービスは、より多くのデータがインポートされるにつれて拡張する必要があり、一般的なオーケストレーション・ツールで動作します。Portworx は、Kubernetes などのオーケストレーション・ツールと統合し、ダイナミックで一貫性のある更新パイプラインを実現します。
ETL の課題とソリューション
データソースやビジネス要件は絶えず変化しているため、ETL の設計を担当する管理者は、スケール、更新、品質管理に関連する課題を抱えています。スケーリングの課題は通常、ストレージ容量の制限によって生じます。そのため、管理者は、データ・ストレージ要件の増加に応じて拡張可能なストレージでこの問題を解決できます。
ビジネス要件の変化に伴う課題は、多くの場合、保守管理の対象となります。データソースは、データの保存方法を変更したり、開発者がアプリケーションに変更を加えたりして、変換やロード構造の変更を必要とする場合があります。サードパーティのデータソースからのドキュメントがない場合、データ・ストレージやロード要件の変更は、ETL プロセスでエラーが発生するまで管理者に通知されません。ロギングとアラートは、管理者が問題を早期に特定し、ETL コーディングを変更できるようにします。早期の変更により、ビジネスの生産性と収益に対するエラーの影響が軽減されます。
ETL プロセスの設計は、最も困難なタスクの 1 つですが、管理者が利害関係者と話し合い、ビジネス・ルールが含まれていることを確認すると、より容易に進めることができます。ETL 設計の再設計とリファクタリングは、展開を遅らせ、不要なオーバーヘッドを追加する可能性があります。全てのケースを ETL 設計に含めて、過剰な書き換えを回避できるように、ビジネス・ルールを文書化します。
さまざまな ETL プロセスを分離し、互いに独立させます。このソリューションは、1 つのコンポーネントに障害が発生した場合に ETL プロセス全体が障害を受けないようにします。例えば、外部 API がクラッシュした場合、API が再び利用可能になるまで、他の全てのソースからのデータの抽出は完了します。必要に応じて、複数の ETL スケジュールを作成することもできます。ピュア・ストレージのクラウド・ストレージは、複数のクラウド・プラットフォームで作業する場合、AWS、Azure、GCP、その他の主要なプラットフォームをサポートしています。
ETL と ELT
ETL はリソース集約型で、特に大規模なデータセットを扱う場合、データの可用性に多少の遅延が生じる可能性があることに注意してください。リアルタイムやニア・リアルタイムのデータ処理が重要な要件である場合、データ・キャプチャの変更(CDC)やストリーミング・データ・パイプラインなどの他のデータ統合方法が適している場合があります。
さらに、近年、ELT(抽出、ロード、変換)は、ターゲット・データ・ストレージ・システム内でデータ変換が可能なクラウドベースのデータ環境において、ETL の代わりとして広く普及しています。ELT は、一部のユースケースではコスト効率とスケーラビリティに優れていますが、ETL と ELT の選択は、特定の要件と使用している技術によって異なります。
まとめ
ETL ソリューションの設計には時間がかかりますが、データ・ストレージの増加に伴いスケールするシステムを構築することを忘れないでください。データ・ストレージの容量は、最も解決が容易な課題の 1 つです。ピュア・ストレージのソリューションは、非構造化・構造化データのデータ・ウェアハウス用に構築されています。
優れた設計基準、文書化、品質保証テストにより、他の課題も解決できます。設計に役立つツールもありますが、ETL は多くの場合、ビジネスにあわせてカスタマイズされます。ステージング環境で少量のデータ・サンプルをテストし、新たなビジネス要件の導入に伴い ETL コーディングを継続的に維持します。