現代のデータエンジニアリングにおいてMAGE:効率的なデータ処理を可能にする

MAGE Efficient Data Processing in Modern Data Engineering.

イントロダクション

今日のデータ駆動型の世界では、あらゆる業界の組織が膨大なデータ、複雑なパイプライン、そして効率的なデータ処理の必要性に直面しています。Apache Airflowなどの従来のデータエンジニアリングソリューションは、これらの困難に対処するためにデータ操作をオーケストレーションし、制御することで重要な役割を果たしてきました。しかし、技術の急速な進化により、データエンジニアリングの景観を再構築するMageという新しい競合者が登場しました。

学習目標

  • 第3者のデータをシームレスに統合および同期化すること
  • 変換のためのPython、SQL、およびRによるリアルタイムおよびバッチパイプラインの構築
  • データ検証で再利用可能かつテスト可能なモジュラーコード
  • 寝ている間に複数のパイプラインを実行、監視、およびオーケストレーションすること
  • クラウド上で協働し、Gitとバージョン管理を行い、利用可能な共有ステージング環境を待つことなくパイプラインをテストすること
  • Terraformテンプレートを介してAWS、GCP、およびAzureなどのクラウドプロバイダーでの高速な展開
  • データウェアハウスで非常に大きなデータセットを直接変換するか、Sparkとのネイティブ統合を介して変換すること
  • 直感的なUIを介して組み込みの監視、アラート、および観測性

まるで腕木式に簡単でしょうか?それならMageを絶対に試してみるべきです!

この記事では、Mageの機能と機能性について説明し、これまでに学んだことやそれを使用して構築した最初のパイプラインを強調します。

この記事はData Science Blogathonの一部として公開されました。

Mageとは何ですか?

Mageは、AIによって駆動され、機械学習モデル上に構築された現代的なデータオーケストレーションツールであり、かつてないほどのデータエンジニアリングプロセスを効率化し最適化することを目的としています。これは、データ変換と統合のための効果的でありながら簡単なオープンソースデータパイプラインツールであり、Airflowのような確立されたツールに対して強力な代替手段となる可能性があります。自動化と知能の力を組み合わせることで、Mageはデータ処理ワークフローを革新し、データの取り扱いと処理の方法を変革しています。Mageは、その無比の機能と使いやすいインターフェイスにより、これまでにないデータエンジニアリングプロセスの簡素化と最適化を目指しています。

ステップ1:クイックインストール

Mageは、Docker、pip、およびcondaコマンドを使用してインストールでき、またはクラウドサービス上で仮想マシンとしてホストできます。

Dockerを使用する

#Dockerを使用してMageをインストールするコマンドライン
>docker run -it -p 6789:6789 -v %cd%:/home/src mageai/mageai /app/run_app.sh mage start [project_name]

#別のポートでローカルにMageをインストールするコマンドライン
>docker run -it -p 6790:6789 -v %cd%:/home/src mageai/mageai /app/run_app.sh mage start [project_name]

Pipを使用する

#pipコマンドを使用してインストールする
>pip install mage-ai
>mage start [project_name]

#condaを使用してインストールする
>conda install -c conda-forge mage-ai

Spark、Postgresなどを使用してMageをインストールするための追加パッケージもあります。この例では、Google Cloud Compute Engineを使用してMage(VMとして)にSSH経由でアクセスしました。必要なPythonパッケージをインストールした後、次のコマンドを実行しました。

#Mageをインストールするコマンド
~$ mage sudo pip3 install mage-ai
#プロジェクトを開始するコマンド
~$ mage start nyc_trides_project

ポート6789を確認しています...
Mageはhttp://localhost:6789で実行され、プロジェクト/home/srinikitha_sri789/nyc_trides_projが提供されています
INFO:mage_ai.server.scheduler_manager:Scheduler status: running.

ステップ2:ビルド

Mageは、テストケースを持つビルトインコードを提供し、プロジェクト要件に合わせてカスタマイズできる複数のブロックを提供しています。

APIからデータをロードし、データを変換してGoogle Big Queryにエクスポートするために、データローダー、データトランスフォーマー、およびデータエクスポーターブロック(ETL)を使用しました。

各ブロックがどのように機能するかを学びましょう。

I) データローダー

「データローダー」ブロックは、パイプライン内のデータ処理の後続段階とデータソースの橋渡し役をします。データローダーは、ソースからデータを取り込み、適切な形式に変換して、さらなる処理に利用できるようにします。

主な機能

  • データソースの接続:データローダーブロックは、さまざまなデータベース、API、クラウドストレージシステム(Azure Blob Storage、GBQ、GCS、MySQL、S3、Redshift、Snowflake、Delta Lakeなど)、およびその他のストリーミングプラットフォームに接続することができます。
  • データ品質チェックとエラーハンドリング:データの読み込み中に、確立された検証基準に合致し、正確かつ一貫性があり、適切なデータであることを確認するため、データ品質チェックを実行します。提供されるデータパイプラインロジックを使用して、発見されたエラーや異常をログ、フラグ、または対処できます。
  • メタデータ管理:データローダーブロックによって、取り込まれたデータに関連するメタデータが管理され、キャプチャされます。データソース、抽出タイムスタンプ、データスキーマなどの事実がすべてこのメタデータに含まれます。効果的なメタデータ管理により、パイプライン全体を通じたデータのラインエージング、監査、およびトラッキングが容易になります。

以下のスクリーンショットは、データローダーを使用してAPIから生データをMageにロードする様子を示しています。データローダーコードを実行し、テストケースを正常にパスした後、出力はターミナル内のツリー構造で表示されます。

Data Loading Stage
Executed Data loader Block

II) データ変換

「データ変換」ブロックは、入力データに操作を加え、意味のある洞察を得て、下流プロセスの準備をします。Pythonテンプレートを使用してデータの探索、再スケーリング、必要な列アクション、SQL、およびRのためのデータ検証を含む、汎用コードオプションと独立したファイルの両方を持っています。

主な機能

  • データの結合:データ変換ブロックは、異なるソースまたは異なるデータセットからデータを結合およびマージすることが容易になります。データエンジニアは、類似したキー品質に基づいてデータを結合できるため、内部結合、外部結合、クロス結合を含むさまざまな結合を実現できます。データのエンリッチメントや複数のソースからのデータのマージには、この機能が本当に役立ちます。
  • カスタム関数:データを操作するためのカスタム関数や式を定義して適用できます。高度なデータ変換には、ビルトイン関数を活用するか、ユーザー定義関数を記述することができます。

データをロードした後、変換コードはすべての必要な操作(この例では、フラットファイルを事実およびディメンションテーブルに変換する)を実行し、コードをデータエクスポーターに変換します。データ変換ブロックを実行した後、以下のツリーダイアグラムが表示されます。

Data Transformation Stage
Executed Data Transformation Block

III) データエクスポーター

「データエクスポーター」ブロックは、処理されたデータをさまざまな宛先またはシステムにエクスポートおよび配信し、さらなる消費、分析、またはストレージに利用できるようにします。外部システムとのシームレスなデータ転送と統合を確保します。Python(API、Azure Blob Storage、GBQ、GCS、MySQL、S3、Redshift、Snowflake、Delta Lakeなど)、SQL、およびR用のデフォルトテンプレートを使用して、データを任意のストレージにエクスポートできます。

主な機能

  • スキーマの適応:エンジニアは、エクスポートされたデータの形式とスキーマを、宛先システムの要件に合わせて適応することができます。
  • バッチ処理とストリーミング:データエクスポーターブロックは、バッチ処理およびストリーミングモードの両方で動作します。定義済みの間隔または特定のトリガーに基づいてデータをエクスポートすることでバッチ処理を容易にします。さらに、データのリアルタイムストリーミングをサポートし、下流システムへの連続的かつほぼ即時のデータ転送を実現します。
  • コンプライアンス:データのエクスポート時には、暗号化、アクセス制御、およびデータマスキングなどの機能があり、機密情報を保護します。

データ変換の後、Data Exporterを使用してGoogle BigQueryに変換/処理されたデータをエクスポートし、高度な分析を行います。データエクスポーターブロックが実行されると、以下のツリーダイアグラムにその後のステップが示されます。

Exporting Data Stage
Executed pipeline

ステップ3:プレビュー/分析

「プレビュー」フェーズでは、データエンジニアがパイプラインのある時点で処理されたまたは中間データを検査およびプレビューできます。これにより、データ変換の正確さを確認し、データの品質を判断し、データについて詳細を学ぶ良い機会が得られます。

このフェーズでは、コードを実行するたびに、チャート、表、グラフの形でフィードバックを受け取ります。このフィードバックにより、貴重な洞察と情報を収集できます。対話型ノートブックUIでコードの出力結果を即座に確認できます。パイプライン内では、コードの各ブロックが将来の利用のためにバージョン管理、パーティション分割、カタログ化されるデータを生成します。

主な機能

  • データの可視化
  • データのサンプリング
  • データ品質の評価
  • 中間結果の検証
  • 反復的な開発
  • デバッグとトラブルシューティング
Chart 1
Chart 2

ステップ4:ローンチ

データパイプラインでは、「ローンチ」フェーズは、処理されたデータを本番環境または下流システムに展開する最終段階を表します。このフェーズでは、データが適切な宛先に向けられ、意図したユースケースでアクセス可能になるようになります。

主な機能

  • データの展開
  • 自動化とスケジューリング
  • モニタリングとアラート
  • バージョニングとロールバック
  • パフォーマンスの最適化
  • エラー処理

Mageを維持されるTerraformテンプレートを使用して、わずか2つのコマンドでAWS、GCP、またはAzureに展開し、データウェアハウスで非常に大きなデータセットを直接変換するか、Sparkとのネイティブ統合を介してパイプラインを操作化し、ビルトインモニタリング、アラート、および観測性を実行できます。

以下のスクリーンショットは、パイプラインの合計実行回数、成功または失敗などのステータス、各ブロックのログ、およびそのレベルを示しています。

Monitoring total pipeline runs
Checking for successful/failed runs
Logs and level of each log

さらに、Mageはデータガバナンスとセキュリティを重視しています。データエンジニアリングのオペレーションに安全な環境を提供します。エンドツーエンドの暗号化、アクセス制限、監査機能などの高度な組み込みセキュリティメカニズムにより、Mageのアーキテクチャは、データの整合性と機密性を保護するために厳格なデータ保護規則とベストプラクティスに基づいています。さらに、財務、eコマース、ヘルスケアなど、さまざまな産業でMageの潜在能力を示す実際のユースケースや成功事例を適用できます。

その他の違い

MAGE その他のソフトウェア
Mageは、データを移動・変換するためのデータパイプラインを実行するエンジンです。そのデータはどこにでも保存され、例えばSagemakerでモデルのトレーニングに使用されます。 Sagemaker : Sagemakerは、機械学習モデルをトレーニングするために使用される完全に管理されたMLサービスです。
Mageは、データの統合と変換(ETL)のためのオープンソースのデータパイプラインツールです。 Fivetran : Fivetranは、マネージドETLサービスを提供するクローズドソースのSaas(ソフトウェア・アズ・ア・サービス)企業です。
Mageは、データの統合と変換のためのオープンソースのデータパイプラインツールです。Mageの焦点は、開発者が簡単に使えるようにすることです。 AirByte : AirByteは、API、アプリケーション、およびデータベースからデータをデータレイク、データウェアハウス、およびその他のデスティネーションにレプリケートする、オープンソースのELTプラットフォームの一つです。

結論

データエンジニアや分析の専門家は、Mageツールの各フェーズの機能と機能性を利用することで、データの効率的なロード、変換、エクスポート、プレビュー、デプロイを効率的に行うことができます。この機能により、データに基づく意思決定の促進、価値ある洞察の抽出、およびプロダクションまたはダウンストリームシステムに対する準備が整います。切り込み隊長として広く認められています。

主なポイント

  • Mageは、包括的なデータエンジニアリングのためのパイプラインを提供し、データのインジェスション、変換、プレビュー、およびデプロイを含みます。このエンドツーエンドのプラットフォームにより、データ処理が迅速に行われ、効果的なデータ伝播とシームレスな接続が実現されます。
  • Mageのデータエンジニアは、データ変換フェーズ中にさまざまな操作を適用することができ、データがクレンジングされ、エンリッチされ、次の処理のために準備されることを保証します。プレビューステージでは、処理されたデータの検証と品質評価が可能で、その正確性と信頼性が保証されます。
  • データエンジニアリングパイプライン全体を通じて、Mageは効率性とスケーラビリティを最優先に考えています。並列処理、データパーティショニング、キャッシュなどの最適化技術を使用して、パフォーマンスを向上させます。
  • Mageのローンチステージでは、処理されたデータをダウンストリームまたはプロダクションシステムに簡単に転送できます。自動化、バージョニング、エラーの解決、パフォーマンスの最適化などのツールが用意されており、信頼性の高いタイムリーなデータ伝送を提供します。

よくある質問

この記事に表示されるメディアはAnalytics Vidhyaが所有しておらず、著者の裁量で使用されています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more