2021.05.14

【前編】MongoDBのETL処理をシンプルに

山本心
Xplenty Corporation セールスディレクター
このエントリーをはてなブックマークに追加

【前編】MongoDBのETL処理をシンプルに←本記事です。
【中編】XplentyのMongoDBコネクタ
【後編】MongoDB × Hadoop × Xplenty

はじめに

SB C&Sは、データ統合プラットフォームである「Xplenty」の取り扱いを2021年4月から開始いたしました。(詳細はこちら)
そこで今回から3回にわたって「Xplenty」についてご紹介していきます。

「Xplenty」は、さまざまなソースとデスティネーション間でデータパイプラインを構築するためのシンプルで直感的なビジュアルインターフェースを提供するクラウドベースETL/ELTデータ統合プラットフォームです。

100以上のデータストアと、SaaSアプリケーション(MongoDB/MySQL/PostgreSQL/Amazon Redshift/Google Cloud Platform/Snowflake/Azure Synapse Analytics/Facebook/Salesforce/Jira/Slackなど)の統合をサポートします。

今回の連載記事ではMongoDBとの連携についてご紹介していきます。

目次

・そもそもMongoDBとは?
・そもそもETLとは?
・MongoDBのETL処理にXplentyはどう役立つのか?
・MongoDBのETL処理に最適なXplenty

そもそもMongoDBとは?

MongoDBは、データサイズや品質、形式に関係なく、あらゆるタイプの運用データを管理・保存できる、人気のあるオープンソースのNoSQLデータベースです。大量の非構造化データや構造化データを高速に処理するという点では、リレーショナルデータベースでは追いつけない部分をMongoDBは得意としています。

MongoDBの強みは以下になります。

  • 水平方向にスケーラブル:シャーディングやデータベースに対してサーバーを追加することで、データ量をいくらでも処理できるように拡張できます。
  • 柔軟性:MongoDBはJSONやNoSQLのデータを保存・管理することを目的に作られており、あらゆるタイプのデータ形式や構造をサポートする柔軟性を持っています。
  • 動的スキーマ:MongoDBは、スキーマレスで柔軟にデータ処理を行うことができます。
  • 高性能:シンプルなクエリに関しては、MongoDBはスピードとパフォーマンスを提供します。
  • ウェブベースのアプリに最適:MongoDBはウェブアプリケーション向けのデータベースとして特に人気があります。
  • オープンソース:MongoDBはオープンソースで、誰でも無料で利用できます。
  • クラウドベースのオプション:MongoDB Atlasはサブスクリプションベースのフルマネージドのグローバルクラウドデータベースで、Amazon AWS、Microsoft Azure、Google Cloud Platform上でMongoDBを実行することができます。

MongoDBからデータを抽出、変換、ロードできる速度が速ければ速いほど、ビジネスプロセスやBIツールにとっても有利になります。一方で、ほとんどのETLソリューションがMongoDBのダイナミックスキーマ、NoSQLサポート、JSONデータ型の管理に苦労しています。

Xplentyは他ETLソリューションとは異なり、MongoDB統合のためカスタムコードも遅延も混乱もなく、簡単で手間をかけなくて済むように設計されています。

そもそもETLとは?

ETL(Extract、Transform、Load)とは、あるソースまたはデータベースからデータを取り出し、変換し、別のデータベースまたはデータウェアハウスにロードするプロセスのことです。ほとんどの場合、企業はアプリケーションや生産システムから大量のデータをデータウェアハウスに統合するためにETLを使用します。データウェアハウスに入ってしまえば、高度なBIツールが情報を分析し、そこから価値あるメトリクスを抽出することができます。

Xprenty_1-1.png

ここでは誰でも使える自動化されたETLプラットフォームとして、Xplentyがどのように役に立つかをご紹介します。

  • 抽出:Xplentyには、あらゆるデータソースやデータベースからデータを読み取って抽出することができるように、数多くのコネクターが含まれています。
  • 変換:Xplentyは、100以上の自動データ変換(join、sort、assert、limit、aggregate、cross joiningなど)を提供します。Xplentyでは、複数のデータテーブルを結合したり、重複したレコードを削除したり、列ごとにデータを並べ替えたりといった変換を、データが転送先に転送されている間に「インパイプライン」で実行することができます。
  • ロード:Xplentyにはネイティブのコネクタが含まれており、どのようなデータソースからでもデータを抽出し、あらゆるデスティネーションにもロードすることができます。具体的には、ソースがMongoDB、MySQL、PostgreSQL、その他のものであっても、データを取得し、Redshift、BigQuery、Snowflake、その他のシステムにロードするための準備をすることができます。

MongoDBのETL処理にXplentyはどう役立つのか?

MongoDBから従来のデータウェアハウスへのETL処理は、大きく異なる2つのシステム間でデータを移動するため困難です。MongoDBでは、構造化されていないデータや非リレーショナルデータ(JSONファイルタイプ、ダイナミックスキーマ、深い入れ子になったオブジェクトなど)を扱うことがよくあります。これらは、RedshiftやAzureのようにリレーショナルで構造化されたデータを必要とする典型的なデータウェアハウスにとっては馴染みのない概念になります。

Xplentyは、MongoDB統合の主な課題を克服するために以下の機能を提供しています。

  • 動的スキーマからリレーショナル形式への移行: MongoDBは、定義済みのリレーショナルスキーマではなく動的スキーマを使っています。このため、MongoDBからリレーショナル形式を必要とする一般的なデータウェアハウスにデータを移行する際には、問題が発生します。Xplentyのデータマッピングツールを使えば、移動先に読み込む前にMongoDBのデータを互換性のあるスキーマに変換することができます。
  • 矛盾するデータ型の変換: MongoDBコレクション内の異なるドキュメントで、異なるデータフィールドタイプ/値を使用していることは珍しくありません。たとえば、あるドキュメントでは電話番号を文字列 [(555) 555-5555] として記録し、別のドキュメントでは番号 [555555555555] として記録しているとします。Xplentyの自動化されたソリューションでは、リレーショナルデータウェアハウスにデータをロードする前に、単一のフォーマットを選択し、外れ値を変換することができます。
  • 互換性のないデータ型の変換:MongoDBは、Javascript、正規表現、ObjectIdなど、データウェアハウスがサポートしていないであろう多種多様なデータ型をサポートしています。Xplentyはこれらのデータ型を、データウェアハウスがサポートしている形式に素早く変換することができます。
  • ネスト化されたオブジェクトや配列をフラットにする: MongoDBでは、ネスト化(入れ子構造化)されたオブジェクトや配列を作成することができます。Xplentyのデータマッピングツールを使えば、ネスト化されたオブジェクトを素早く抽出してフラットにし、リレーショナルデータウェアハウスのレコードに収まるようにすることができます。
  • データウェアハウスのスキーマに新しいフィールドを追加する:MongoDBではUPDATEコマンドで新しいフィールドをドキュメントに追加できますが、リレーショナルデータウェアハウスではこのような変更を行うのはそう簡単ではありません。MongoDBで新しいフィールドが検出された場合、Xplentyは自動的に対応する変更を、追加先のスキーマに追加したり、ALTERしたりすることで行うことができます。
  • カラムのサイズ変更:MongoDBはドキュメント全体に16MBのしきい値を設定していますが、個々の文字列の長さを制限するわけではありません。しかし、リレーショナルデータウェアハウスでは文字列カラムのサイズに制限があることがあります。Xplentyを使えば、MongoDBのカラムがデータウェアハウスの制限を超えたときにはいつでもリサイズするようなワークフローを設定することができます。

MongoDBのETL処理に最適なXplenty

Xplentyは、MongoDBとの間でデータを抽出、変換、ロードするための最も使いやすく、最も費用対効果が高く、安全な自動化されたソリューションです。

コーディングスキルが不要

  • スキルは必要なし:Xplentyのインターフェースはシンプルで使いやすく、経験やトレーニングの必要がなく誰でもETLプロセスやデータ変換を開発することができます。
  • ネイティブMongoDBコネクター:XplentyのネイティブMongoDBコネクターは、直観的でノーコードのインターフェースを提供し、MongoDBデータを準備してデータウェアハウスに移動して分析するETLパイプラインを素早く簡単に設計できます。
  • Xplenty社によるサポート:すべてのサービスレベルにおいて、電話でのサポートやビデオ会議でのサポートを受けることができます。

最先端のセキュリティ、コンプライアンス、暗号化機能

  • SSL/TLS:SSL/TLS暗号化に対応しています。
  • コンプライアンス基準:SOC 2、HIPAA、GDPRのコンプライアンス基準に適合しています。
  • 暗号化:プラットフォーム上のすべての顧客データを暗号化します。
  • セキュリティ検証:セキュリティ証明書と暗号化アルゴリズムの継続的な検証
  • ファイアウォールアクセス制御:内部接続と外部接続の両方へのアクセスを自動的に拒否するファイアウォールのアクセス制御。個々のポート/プロトコルへのアクセスを特別に許可する必要があります。
  • フィールドレベルの暗号化:フィールドレベルで情報を暗号化および復号化します。

おわりに

MongoDBのスピード、柔軟性、データインジェスト機能は、高度なBIツールを実現するため必要不可欠です。Xplentyと組み合わせ利用することで、MongoDBの統合は素早く、簡単に、手頃な価格で、安全に行えます。

次回の記事では、MongoDBのデータをどうやってデータウェアハウスに送信するかご紹介いたします。

関連ページ

【中編】XplentyのMongoDBコネクタ

Xplenty製品概要

SB C&Sプレスリリース

この記事の著者:山本 心

Xplenty Corporation セールスディレクター

Cognos(IBM)、SAP、Domoといった企業で10年以上に渡りBusiness Intelligence/Analytics製品の導入コンサルタントとして様々な企業のプロジェクトを支援。2019年11月よりXplentyに参画し、日本におけるXplentyの販売/マーケティング/アライアンスを担当。


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。