データエンジニアリング - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データエンジニアリング

組織全体のデータフローを自動化およびオーケストレーションします。

メタデータを使用することで、生データを処理し最適化された分析結果を生成するパイプラインを自動化します。AWS CAF が示す、プラットフォームアーキテクチャおよびプラットフォームエンジニアリングの能力と、オペレーションの視点に定義されているように、既存のアーキテクチャガードレールとセキュリティコントロールを活用します。また、プラットフォームエンジニアリングのイネーブルメントチームと協力して、再利用可能なブループリントを一般的なパターン用に作成し、これによってパイプラインのデプロイを簡素化します。 

Start

データレイクをデプロイする

構造化および非構造化データに適したストレージソリューションを使用して、基本的なデータストレージ機能を確立します。これによって、さまざまなソースからデータ収集して保存し、詳細な処理や分析のためにそれらを利用可能にすることができます。データストレージは、データエンジニアリング戦略で重要な役割を担います。データストレージアーキテクチャを適切に設計すると、データを効率的かつ費用対効果の高い方法で、保存および管理し、それらにアクセスできます。AWS では、特定のビジネスニーズを満たすさまざまなデータストレージサービスが提供されています。

例えば、オブジェクトストレージに Amazon Simple Storage Service (Amazon S3)、リレーショナルデータベースに Amazon Relational Database Service (Amazon RDS)、データウェアハウスに Amazon Redshift をそれぞれ使用して、基本的なデータストレージ機能を確立できます。こうしたサービスでは、データを安全かつ費用対効果の高い方法で保存し、詳細な処理や分析のためにそれらを利用可能にすることができます。データのパーティショニングおよび圧縮といった、データストレージのベストプラクティスを実装して、パフォーマンスを向上させることもお勧めします。

データインジェストのパターンを開発する

データフローを自動化およびオーケストレーションするには、データインジェストプロセスを確立して、データベース、ファイル、API といった各種ソースからデータを収集します。データインジェストプロセスでは、ビジネスの俊敏性に対応し、ガバナンスコントロールを考慮する必要があります。

オーケストレーターは、クラウドベースのサービスを実行するとともに、自動スケジューリングの仕組みを実現する機能を持つ必要があります。タスク間の条件付きリンクと依存関係のオプションに加え、ポーリング機能とエラー処理機能も備えていなければなりません。さらに、パイプラインをスムーズに実行できるよう、アラートおよびモニタリングシステムとシームレスに統合されている必要があります。

一般的なオーケストレーションの仕組みを次に示します。

  • 時間ベースのオーケストレーション: 再帰的な間隔と定義済みの頻度でワークフローを開始します。

  • イベントベースのオーケストレーション: ファイルの作成や API リクエストといったイベントの発生に基づいて、ワークフローを開始します。

  • ポーリング: タスクまたはワークフローで、(API などを介して) サービスを呼び出し、定義済みのレスポンスを待ってから次のステップに進む仕組みを実装します。

最新のアーキテクチャ設計は、マネージドサービスを活用して、クラウドでのインフラストラクチャ管理の簡素化や、開発者チームやインフラストラクチャチームの負担軽減を行うことに重点が置かれています。このアプローチは、データエンジニアリングにも適用されるため、必要に応じてマネージドサービスを利用してデータインジェストパイプラインを構築し、データエンジニアリングプロセスを迅速化すると良いでしょう。こうしたタイプのサービスの例には、Amazon Managed Workflows for Apache Airflow (Amazon MWAA) と AWS Step Functions の 2 つがあります。

  • Apache Airflow は、プログラムによるワークフロー作成、スケジューリング、モニタリングなどに広く利用されているオーケストレーションツールです。AWS では、Amazon Managed Workflows for Apache Airflow (Amazon MWAA) というマネージドサービスが提供されており、これによって、オーケストレーションツールのインフラストラクチャ管理ではなく、構築作業に集中できるようになります。Amazon MWAA では、Python スクリプトを使用してワークフローを簡単に作成することも可能です。有向非巡回グラフ (DAG) は、各タスクの関係と依存関係を示す方法で、ワークフローをタスクのコレクションとして表すものです。必要な数の DAG を持つことができ、Apache Airflow では、各タスクの関係性および依存関係に従ってそれらを実行します。

  • AWS Step Functions を使用すると、IT およびビジネスプロセスを自動化する、ローコードのビジュアルワークフローを構築しやすくなります。Step Functions で構築するワークフローをステートマシンと呼び、ワークフローの各ステップをステートと呼びます。Step Functions を使用すると、組み込みのエラー処理、パラメータの受け渡し、推奨のセキュリティ設定、ステート管理を行うワークフローを作成でき、これによって、書き込みと保守が必要なコードの量も減少します。タスクの処理は、別の AWS サービス、もしくはオンプレミスまたはクラウド環境でホストしているアプリケーションと連携させて実行します。

データ処理を高速化する

データ処理は、先進的な組織で収集されている膨大な量のデータを理解する上で重要なステップであり、データ処理に着手できるよう、AWS では、強力な抽出、変換、ロード (ETL) 機能を得られる AWS Glue などのマネージドサービスが提供されています。こうしたサービスを利用すると、データのクリーニング、正規化、集計といった、生データの処理および変換に着手して、それらを分析に使用する準備を整えられます。

データを処理するには、初期データの変換を実行する集約やフィルタリングなどのシンプルな手法を最初に実践します。データ処理のニーズが変化していく中で、より高度な ETL プロセスを実装でき、これにより、さまざまなソースからデータを抽出して、特定のニーズに合うよう変換し、それらを一元化したデータウェアハウスやデータベースにロードして統合分析を行えます。こうしたアプローチを取ることで、データの精度と完全性を高め、適切なタイミングでそれらを分析に利用できるようになります。

AWS のマネージドサービスをデータ処理に利用すると、自動化、スケーラビリティ、コスト効率のレベルが高まり、そのメリットを得ることができます。こうしたサービスにより、スキーマ検出、データプロファイリング、データ変換といった日常的なデータ処理タスクの多くが自動化されるため、解放された貴重なリソースを、より戦略的なアクティビティに投入できます。さらに、これらのサービスを自動スケーリングして、今後のデータボリューム増加に対応することも可能です。

データ可視化のサービスを提供する

どうすれば、意思決定者がデータを利用しやすくなるか、また、それらを可視化し、有意義かつ迅速に解釈できるようになるかを特定します。可視化によってデータのパターンを解釈できるようになるため、さまざまな利害関係者のエンゲージメントがその技術的スキルに関係なく高まります。優れたプラットフォームがあるデータエンジニアリングチームなら、迅速かつわずかなオーバーヘッドでデータを可視化するリソースをプロビジョニングできます。セルフサービス機能を提供することも可能で、このサービスでは、エンジニアリングの専門知識がなくてもデータストアを簡単にクエリできるツールを使用します。これには、可視化したデータやインタラクティブなダッシュボードからサーバーレスビジネスインテリジェンスを利用したり、バックエンドデータを自然言語でクエリしたりできる組み込みツールの使用を検討してください。 

高度化

ほぼリアルタイムのデータ処理を実装する

データ処理は、あらゆるデータエンジニアリングパイプラインに不可欠なコンポーネントであり、これによって、生データを有意義なインサイトに変換できます。スピードが求められる今日のビジネス環境では、従来のバッチ処理に加えて、リアルタイムのデータ処理がますます重要になっています。リアルタイムのデータ処理を実装していれば、イベントの発生時にすぐに対応でき、意思決定と運用効率を向上させることも可能です。

データ品質を検証する

データ品質は、データから導き出すインサイトや意思決定の精度と信頼性に直接影響します。高品質で信頼できるデータを分析に使用できるようにするには、データ検証およびクレンジングプロセスの実装が不可欠です。

データ検証では、事前に定義されているルールと基準に照らして、データの精度、完全性、一貫性を検証する必要があります。これにより、データ内の不一致やエラーを特定しやすくなり、目的に沿うデータを用意できます。データクレンジングでは、データの不正確性、不整合、重複を特定し、修正しなければなりません。

データ品質関連のプロセスおよびツールを実装すると、データから派生したインサイトの精度と信頼性が高まり、ひいては、意思決定と運用効率が向上します。これにより、組織のパフォーマンスが強化されるだけでなく、生成したデータと分析結果に対するステークホルダーの確信と信頼も高まります。

データ変換サービスの有効性を証明する

データ変換では、高度な分析モデルと機械学習モデルにデータを準備します。また、データの正規化、エンリッチメント、重複排除などの手法を使用して、データがクリーンで一貫性があり、分析の準備が整っていることを確認する必要があります。

  • データの正規化: データを標準形式に変換して整理し、冗長性をなくし、さまざまなソース間でデータの一貫性を確保します。これにより、複数のソースから得たデータの分析と比較が容易になるため、オペレーションをより包括的に把握できます。

  • データエンリッチメント: 人口統計データや市場動向といった外部ソースからの情報を追加して、既存のデータを強化します。これにより、内部データソースだけでは明らかにならないと思われる顧客行動や業界動向について、貴重なインサイトを得られます。

  • 重複排除: 重複するデータエントリを特定して削除するとともに、データの精度を高め、エラーをなくす必要があります。これは、わずかな重複によっても分析結果に歪みが生じかねない大規模データセットを処理する場合に、特に重要です。

高度なデータ変換手法を使用すると、データの品質と精度を高め、より複雑な分析にデータをすぐに提供できます。そうすることで、より適切な意思決定、運用効率の向上、市場での競争優位の獲得などが可能になります。

データ民主化を実現する

データ民主化の文化を促進するには、すべての従業員がデータにアクセスでき、それらを理解し使用できるようにします。データ民主化が実現すると、従業員がデータ駆動型の意思決定を行ったり、組織のデータ駆動型文化に貢献したりするようになります。つまり、サイロ化が解消し、意思決定を推進するためにすべての従業員がデータを共有し使用する文化が作られます。

まとめると、データ民主化で重要なのは、組織内の誰もがデータの評価、アクセス、理解を行える文化を作ることです。データ民主化の実現によって、データ駆動型の文化を形成すると、イノベーションの推進や、意思決定の改善が可能になり、最終的には、これらをビジネス成果につなげられます。

Excel

UI ベースのオーケストレーション機能を利用可能にする

効果的なアプローチを取る俊敏な組織を作る場合に重要なのは、最新のオーケストレーションプラットフォームを計画し、事業部門全体の開発および運用の人的リソースが使用できるようにすることです。ここでの目標は、単一のチーム、テクノロジー、サポートモデルに依存せずに、データパイプラインとワークフローを開発、デプロイ、共有することです。これを実現するには、UI ベースのオーケストレーションなどの機能を使用します。ドラッグアンドドロップ操作などの機能により、技術的な専門知識がほとんどないユーザーでも、DAG やステートマシンのデータフローを構築できます。その後、こうした UI ベースのコンポーネントで、データパイプラインをオーケストレーションする実行可能コードを生成できます。 

DataOps を導入すると、データ管理の複雑さを克服し、シームレスなデータフローを組織全体で確立しやすくなります。また、メタデータ駆動型のアプローチによって、品質とコンプライアンスが確保され、組織の要件や規則に従うことができ、マイクロサービス、コンテナ化、サーバーレスの機能といったツールセットに投資すると、スケーラビリティと俊敏性が向上します。

データからの価値創出をデータエンジニアリングチームに任せ、日々のインフラストラクチャタスクを自動化することで、自動化とオーケストレーションの優秀性を実現できます。また、データフロー管理タスクをほぼリアルタイムでモニタリングしログ記録すると、修復アクションをすぐに実行できるようになり、データフローパイプラインのパフォーマンスとセキュリティも向上します。こうした原則は、スケーラビリティとパフォーマンスの目標達成に加え、安全なデータ共有モデルの確立や、将来の成功を見据えた組織の構築に有用です。

DataOps を統合する

DataOps は、データエンジニアリングへの最新のアプローチであり、この手法では、データパイプラインの作成、テスト、デプロイを合理化する開発プロセスと運用プロセスの統合が重視されています。DataOps のベストプラクティスを実装するには、Infrastructure as Code (IaC) と継続的インテグレーションおよび継続的デリバリー (CI/CD) のツールを使用します。こうしたツールでは、パイプラインの自動作成、テスト、デプロイがサポートされているため、効率が大幅に向上し、エラーも減少します。DataOps チームは、プラットフォームエンジニアリングのイネーブルメントチームと協力して、こうした自動化を構築します。これにより、それぞれのチームが、最善を尽くすべきタスクに集中できるようになります。 

DataOps メソッドを実装すると、データエンジニア、データサイエンティスト、ビジネスユーザーのためのコラボレーション環境作りが進み、データパイプラインと分析ソリューションの迅速な開発、デプロイ、モニタリングが可能になります。このアプローチによって、チーム間でよりシームレスなコミュニケーションとコラボレーションを行えるようになり、イノベーションの迅速化と成果の向上につながります。

DataOps の利点を最大活用するには、データエンジニアリングプロセスの合理化が重要です。これを達成するには、コードレビュー、継続的インテグレーション、自動テストといった、プラットフォームエンジニアリングチームのベストプラクティスを実装します。こうしたプラクティスの実装により、データパイプラインの信頼性、スケーラビリティ、安全性を確保するとともに、ビジネスおよび技術の両ステークホルダーのニーズを満たすことができます。