データインジェストとは?
データインジェストとは?
データインジェストとは、さまざまなソースからデータを収集し、それをターゲットシステムにコピーして保存および分析するプロセスを指します。現代のシステムでは、データはさまざまな形式や速度でシステムやデバイス間で「流れる」ものと見なされています。例えば、スマートセンサーからのデータはセンサー入力の絶え間ないストリームとして継続的に受信しますが、顧客の売上データはその日の終わりに照合してバッチで送信される場合があります。データソースが異なれば、データが送信先に送られる前に、さまざまな検証のチェック、前処理、およびエラー管理が必要になります。データインジェストには、さらなる分析のためにデータを安全に収集するために必要なすべてのテクノロジーとプロセスが含まれます。
データインジェストが重要である理由
データインジェストプロセスは、あらゆるデータパイプラインの最初のステップです。これにより、未加工データが適切に収集、準備され、下流のプロセスで利用できるようになります。正確なデータインジェストが不可欠な理由は次のとおりです。
データの優先順位付けのサポート
ビジネスアナリストとデータサイエンティストは、最も重要なデータソースに優先順位を付け、効率的な処理と統合のためのデータインジェストパイプラインを設定します。運用のニーズに応じて、優先順位付けされたデータはクレンジング、重複排除、変換、または伝播に進みます。これらの準備手順は、効果的なデータ運用に不可欠です。優先順位付けされたアプローチは、データ処理を合理化すると同時に、ビジネス効率を高めます。
データサイロの削除
複数のソースからデータを収集して統一された形式に変換することで、組織はデータインジェストによりデータアセットの統合ビューを確実に実現できます。このプロセスはデータサイロ化を防ぎ、部門間で情報にアクセスしやすくなり、コラボレーションが改善されます。
オートメーションによる加速
データインジェストシステムを構築したら、データエンジニアはさまざまなオートメーションコントロールを設定してプロセスをさらに加速できます。このようなプロセスは、このデータを利用する AI や機械学習モデルなど、他のデータ駆動型ツールに容易に転用できます。データパイプラインの自動化は、プロセス全体の合理化にも役立ちます。
分析の強化
データ分析を効果的に行うには、関連情報をすぐに入手できる必要があります。データインジェストの際に、複数のソースを組み合わせたり、データの拡充アクティビティを実行したりできます。データインジェスト層は、データウェアハウスや専用のデータマートなどの適切なストレージシステムにデータを送信し、データへの高速で信頼性の高いアクセスを実現します。データへのオンデマンドアクセスにより、リアルタイムのデータ処理と分析が可能になります。組織はデータ分析の結果を利用して、より正確なビジネス上の意思決定を行うことができます。
データインジェストプロセスの種類にはどのようなものがありますか?
データインジェストとアプローチは、データの量、速度、ユースケースによって異なります。
バッチデータインジェスト
バッチインジェストツールは、指定された期間にわたってデータを収集し、複数のデータエントリのグループを一度に取り込みます。通常、日末、週末、月末などのスケジュールされた間隔でデータを取り込むように設定されます。例えば、画像編集ソフトウェアは、編集されたすべての画像を 1 日の終わりに自動的にクラウドにアップロードできます。
データが大量にある場合、データのバッチ処理の規模が大きくなると、処理速度が速くなることもあれば、処理が遅くなることもあります。転送が遅く、エラーが発生した場合、バッチの再開は高価で複雑になる可能性があります。バッチ処理を使用するデータエンジニアは、バッチが最後に中断された場所から開始できるフォールトトレラントパイプラインを作成します。
このアプローチは、履歴データを分析したい場合や、タイミングが関係ない場合に最適です。ほぼリアルタイムまたはリアルタイムのデータを取り込むには、多くの場合、以下のいずれかの方法が適しています。
ストリーミングデータの取り込み
ストリーミングデータの取り込みツールは、継続的に読み取りを行う IoT センサーからデータを取り込む場合など、データが生成されるとすぐにデータを収集します。ストリーミングでは最新のデータに確実にアクセスできますが、リソースを大量に消費する可能性があります。データエンジニアは、システムやネットワークのエラーやネットワークの遅延に対処する必要があります。これにより、データが失われ、データストリームにギャップが生じる可能性があります。
ストリーミングデータの取り込みには 2 つの方法があります。
プルベースの取り込み
取り込みツールはソースをクエリし、データ抽出を実行します。この処理は、連続的に行うことも、あらかじめ設定した間隔で実行することもできます。
プッシュベースの取り込み
データソースは、新しい情報が生成されるとすぐにデータを取り込みツールにプッシュします。
マイクロバッチインジェスト
マイクロバッチデータインジェストは、連続データストリームを離散ストリームと呼ばれるより小さく管理しやすいチャンクに分割します。このアプローチでは、バッチ取り込みとストリーミング取り込みの利点のバランスが取れます。リアルタイム処理が必要だが、フルストリーミングにはリソースの消費量が大きすぎるシナリオに最適です。ただし、マイクロバッチ処理では、純粋なストリーミングの取り込みと比較すると、依然としていくらかの遅延が発生します。
マイクロバッチ処理は、ストリーミングに関連する高額なコストを支払うことなく、ほぼリアルタイムでデータインジェストを行うための費用対効果の高い方法です。
イベント駆動型の取り込み
これはプッシュベースの取り込みに特化した形態です。イベント駆動型システムでは、継続的または一定の間隔ではなく、特定のイベントまたはトリガーが発生したときにデータを取り込みます。このアプローチは、注文処理、顧客通知、システム監視などの用途で一般的に使用されます。この方法法は、必要な場合にのみ関連データを取り込むことで、不要なデータ移動を減らし、リソースの使用を最適化できます。ただし、効果的に機能するには、明確に定義されたイベントトリガーとイベント処理メカニズムが必要です。
変更データキャプチャ
変更データキャプチャ (CDC) システムは、データベースレプリケーション、インクリメンタルデータウェアハウス、および分散システム間の同期に一般的に使用されるイベントベースの取り込みの一種です。データインジェストツールは、データセット全体を転送するのではなく、データベースに対して加えられた変更のみを取り込みます。CDC はトランザクションログイベントを監視することで、挿入、更新、削除を識別し、ほぼリアルタイムで他のシステムに伝播します。CDC はデータ転送コストを最小限に抑え、効率を向上させますが、基盤となるデータベースシステムからのサポートが必要であり、処理オーバーヘッドが発生する可能性があります。
データインジェスト、統合、ETL の違いは何ですか?
これらの概念はよく混同されますが、重要な違いがあります。
データインジェストとデータ統合
データ統合とは、さまざまなデータセットを 1 つの統合ビューにまとめることです。これは、複数のソースシステムから単一のターゲットシステムにデータを移動し、データをマージし、不要なデータを削除し、重複を排除し、分析して詳細なインサイトを得ることを指す広義の用語です。例えば、顧客プロファイルデータを注文購入データと統合すると、特定の年齢層または地域の人々の注文嗜好に関するインサイトが得られる可能性があります。
データインジェストがデータ統合パイプラインの第一歩です。ただし、データ統合には、抽出、変換、ロード (ETL) パイプラインやデータクエリなど、取り込み以外のツールやテクノロジーが必要です。
データインジェストおよびETL と ELT の比較
抽出、変換、ロード (ETL) は、データ品質を複数の段階 (ホップ) で向上させるマルチステップアーキテクチャの一種です。ETL では、データはソースから抽出され、分析ツールによって望ましい形式に変換されてから、データウェアハウスやデータレイクなどのデータストレージシステムにロードされます。
抽出、ロード、変換 (ELT) は、ETL のデータ変換とロードセグメントを逆にする代替パイプラインです。これはシングルホップアーキテクチャであり、データはターゲットシステムにロードされて変換されます。
データインジェストとは、ETL パイプラインと ELT パイプラインの両方の抽出段階とロード段階を指します。ただし、ETL と ELT はどちらも、データインジェストだけでなく、変換段階でのデータ処理も行います。
データインジェストにはどのような課題がありますか?
ここでは、組織がデータを取り込む際に考慮すべき課題をいくつかご紹介します。
スケール
データインジェストシステムのスケーリングは、データ量が多く、時間の経過とともにデータ速度が速くなるため、組織にとって難しい課題です。
水平スケーリングと垂直スケーリング
組織は主に 2 つのスケーリング戦略を用いています。1 つは水平スケーリングで、取り込みワークロードを複数のノードに分散します。ボトルネックを防ぐには、効率的な負荷分散と調整が必要です。垂直スケーリングは、1 つのノード内の処理能力を高めることに依存しています。これは設計が容易ですが、ノードの処理能力によって制限されます。主な課題は、取り込みパイプラインが遅延やシステム障害を引き起こすことなく、増え続けるデータを処理できるようにすることです。
スケーリングの課題を解決するには、Amazon Kinesis Data Streams を使用して水平スケーリングによるリアルタイムのデータインジェストを行うことができます。また、Amazon EMR を使用すると、ユーザーは Apache Spark、Trino、その他のビッグデータワークロードを簡単に実行およびスケールできます。
サーバーレスアーキテクチャ
サーバーレスパイプラインは、インスタンスの設定やデプロイを必要としないオンデマンドのデータインジェストアーキテクチャです。サーバーレスアーキテクチャは、可変データインジェストパターンまたはイベント駆動型取り込みに最適です。
例えば、AWS 上のサーバーレス取り込みパイプラインは、Amazon Data Firehose と AWS Lambda を使用して構築できます。
セキュリティ
セキュリティとコンプライアンスは、データインジェスト中、特に機密情報を扱う際の重要な懸念事項です。組織は、データの収集、送信、および保存に厳しい要件を課すデータプライバシー規制を遵守する必要があります。
取り込む際のデータセキュリティに関するベストプラクティスには、次のようなものがあります。
- 転送中と保管時のデータ暗号化
- アクセス制御と認証メカニズム
- 個人を特定できる情報 (PII) を保護するためのデータマスキングと匿名化技術
AWS へ取り込む際のデータセキュリティを確保するために、次のようなサービスを使用できます。
- 機械学習とパターンマッチングを使用して機密データを検出する Amazon Macie
- AWS ワークロード全体のデータを暗号化する AWS Key Management Service
- データをインターネットに公開することなく Amazon Virtual Private Clouds (VPC) と AWS サービスを接続する AWS PrivateLink
ネットワークの信頼性
ネットワークの中断、API 障害、一貫性のないデータ可用性により、データインジェストプロセスが中断する可能性があります。これらのイベントは、データ破損などの問題を引き起こします。いずれかのソースからデータが過負荷になると、データが失われたり、データウェアハウスなどのシステムが一時的に遅くなったりする可能性があります。データフローの急増を管理するには、アダプティブスロットリングが必要な場合があります。バックプレッシャー管理により、データインジェストツールは受信データを処理能力に見合った速度で処理できます。
失敗したデータを再試行することは、エラー処理戦略の 1 つです。データインジェストツールは、破損または欠落しているデータを特定すると、ソースに再送信リクエストを送信します。再試行すると精度は向上しますが、予想されるスループットとレイテンシーに影響する可能性があります。
AWS で自動再試行を実装するには、AWS Step Functions を使用して独自のワークフローを作成できますが、Amazon Kinesis にはインバウンドデータフローを管理するための設定可能なポリシーとプロセスが用意されています。
データ品質
データがさまざまなソースからデータインジェストパイプラインに到着しても、そのデータが組織に適用できる一貫した形式になる保証はありません。未処理のデータソースには、欠損値、誤ったデータ形式、スキーマの不一致が含まれている場合があります。これは特に、非構造化データを扱う場合に当てはまります。統一性が欠如していると、操作やクリーニングの過程が増えるためです。
データインジェストツールには通常、データ品質チェックが含まれ、データの検証、クリーニング、標準化のための方法が実装されています。自動重複排除、スキーマの適用、AI 主導の異常検出は、エラーがデータパイプラインにさらに伝播する前にエラーを特定して修正するのに役立ちます。
AWS のデータ品質ツールには、品質ルールと自動化のための AWS Glue Data Quality や、データカタログ化とガバナンスのための Amazon DataZone などがあります。
データインジェストフレームワークはどのようにしてより良いビジネス上の意思決定を支援するのでしょうか?
正確なデータによりタイムリーにアクセスできれば、チームはトレンドを迅速に把握し、変化し続ける顧客のニーズに対応し、戦略をリアルタイムで調整できます。組織は、直感ではなくエビデンスに基づいて意思決定を行うための準備が整います。
安全で信頼性の高いデータパイプラインで信頼を構築
顧客と規制当局は、企業が責任を持ってデータを取り扱うことを期待しています。適切に設計されたデータインジェストプロセスにより、データの収集、転送、アクセスが安全に行われるため、こうした期待に応えることができます。
これには、運用面での即時の改善以外にもメリットがあります。コンプライアンスの信頼性が向上し、データウェアハウスで安全なデータ処理を実証することで、チーム全体で社内の信頼を築き、顧客の信頼を高めることができます。
企業全体のコンプライアンスとレポート作成を効率化
信頼性の高いデータインジェストプロセスにより、組織は規制要件を満たし、監査を簡素化できます。企業全体のデータを一貫して安全に収集することで、明確で追跡可能な業務記録が作成されます。これは、一般データ保護規則 (GDPR)、医療保険の相互運用性と説明責任に関する法律 (HIPAA)、または PCI データセキュリティスタンダード (PCI DSS) などの基準に準拠するうえで特に重要です。
自動データインジェストにより、人為的ミスのリスクが軽減され、必要なデータがタイムリーに取り込まれるようにします。これにより、正確なレポートを作成したり、監査人のリクエストに応えたり、データプラクティスが透明で統制されていることを実証したりすることが容易になります。
チーム全体でより迅速なイノベーションを実現
データが確実に取り込まれ、すぐに利用できるようになれば、企業中のチームがよりアジャイルになります。例えば、製品、マーケティング、および運用チームは、IT 部門がデータセットを準備するのを待たずに、仮説をテストし、顧客関係管理 (CRM) システムで結果を測定し、イテレーションを行うことができます。自動化された取り込みパイプラインにより、それらのチームは最新の信頼できるデータにセルフサービスでアクセスできるようになり、インサイトを得るまでの時間を短縮できます。
AWS はお客様のデータインジェストの要件をどのようにサポートできますか?
AWS は、さまざまなデータタイプを AWS クラウドデータベースやその他の分析サービスに取り込むためのサービスと機能を提供しています。例:
- Amazon Data Firehose は Kinesis ファミリーのサービスであり、ストリーミングデータの量とスループットに合わせて自動的にスケールするため、継続的な管理を行う必要がありません。
- AWS Glue はフルマネージド型のサーバーレス ETL サービスで、シンプルで費用対効果の高い方法で、さまざまなデータストア間でデータを分類、クリーニング、変換し、信頼性の高い方法で転送します。
- AWS Transfer Family は、AWS ストレージサービスとの間でファイルを移動するための、フルマネージド型の安全な転送サービスです。
- AWS データベースと AWS Database Migration Service (DMS) は、すべての AWS データベースサービスから変更をキャプチャしてストリーミングするメカニズムを提供します。Amazon DynamoDB または Amazon Neptune のネイティブ CDC を使用できるため、データ統合パイプラインの複雑さを軽減できます。別のオプションは、AWS Database Migration Service (DMS) で CDC を使用することです。これにより、ソースのトランザクションログから変更を抽出できます。DMS は可用性の高いサービスであり、長時間実行されるレプリケーションタスクへの耐久性を備えています。その後、データストリームは Amazon MSK、Amazon Kinesis、または AWS Glue を使用してオプションで変換および配信できます。
- Amazon Managed Streaming for Apache Kafka (Amazon MSK) は、ストリームの取り込みにオープンソースの Apache Kafka を使用するアプリケーションの構築と実行を容易に行えるようにするフルマネージドサービスです。
Amazon EC2 と Amazon EMR にカスタムのデータインジェストプラットフォームをインストールし、独自のストリームストレージと処理レイヤーを構築することもできます。そうすることで、インフラストラクチャプロビジョニングにおけるフリクションを回避するとともに、さまざまなストリームストレージおよび処理フレームワークにアクセスできるようになります。
今すぐ無料のアカウントを作成して、AWS でのデータインジェストを開始しましょう。