NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

ETLツール Xplentyの紹介

はじめに

株式会社ネクストスケープ ソリューションビジネス部の小野塚です。

今回はとあるETLツールの紹介をしてみたいと思います。
ETLツール、今では国内外に色々な製品が存在しておりまして、BigDataやデジタルマーケティングが重要視されてきた頃から急速に増えてきたような気がします。

弊社でもお客様からデジタルマーケティングを進めるにあたり、社内のデータをMarketo等のマーケティングオートメーションツールに集約・連携したい等のご依頼を受け、ETLツールを利用したり、もしくはフルスクラッチでバッチ処理を作成し、その運用・保守等をお引き受けする場合がございます。
今回ご紹介するのはIntegrate.io社のXplenty(エクスプレンティ)というツールになります。
以下がIntegrate.io社のページになるのですが、実は「Xplenty」という文字・名前はあまり出てきません。

www.integrate.io

上記サイトのトップメニュー「製品紹介」→「ETL&リバースETL」がXplentyのページになるのですが、Integrate.io社でもセミナー等では「Xplenty」の名称を使っておりますので、本記事でも「Xplenty」として説明していきます。

作業準備

Xplentyの処理の実行単位は「ジョブ」と呼ばれます。
「ジョブ」は複数作成でき、「ワークスペース」という概念でグループ分けできます。
例えば、SalesforceからAzure BLOBへデータ連携するジョブを「SFtoBLOB」と名付け、それを「Salesforce_Workspace」というワークスペースに配置する。。といったものです。
そして、もう1つ必要な設定として接続に関する設定、Xplenty上の機能名としては「Connnection」の作成・設定が必要となります。

順番としては
1.ワークスペースの作成
2.Connectionの作成
3.ジョブの作成
といった流れになります。1と2は逆でも構いません。

Connection作成

ワークスペースの作成は難しいものではなく、あまり本記事で詳しく説明する必要性を感じないので割愛させていただき、ジョブの次に重要なConnectionの作成について説明します(ワークスペースが既に存在する前提で以降お話しします)。
左端のメニューで稲妻のアイコンをクリックすると、Connectionの画面に遷移します。そこから左上の「New connection」ボタンをクリックします。

すると以下のようにXplentyに接続させたいサービスが表示されます。
ご覧の通り様々なサービスがXplentyと接続可能です。
以下の画面は全体の半分です。

せっかくですので残り半分もお見せします。
Instagram、HubSpot、Tiktok Ads等もありますが、皆さんが使われているサービスはございますでしょうか。当社がXplentyを利用し始めたのは約2年前になりますが、そこから接続先が爆発的に増えてきました。今後も更に増えるかと思います。

遅ればせながら今回作成するジョブはAzure BLOB上のCSVファイルをAzure SQL Databaseへのデータの流し込みを行いたいと思いますので、Azure BLOBとSQL DatabaseのConnectionを作成します。
今回はSQL Databaseを例にしたいと思います。上の画面で「Microsoft SQL Server」を選びます。
すると以下の画面が表示されますので、それぞれに必要事項を入力します。
「Name」はConnectionの名前ですので好きな名前で大丈夫です。
もしかするとちょうどXplentyが手元にあって試してみたい方がいるかもしれませんのでその方向けに説明すると「User name」はSQL Server 認証におけるユーザー名なのですが、ユーザー名だけでは駄目で、ユーザー名の後に「@ホスト名」を付けるようにしてください。
例えばユーザー「onozuka」がホスト名「xxxxx.database.windows.net」に接続する場合、User nameは「onozuka@xxxxx.database.windows.net」という形になります。

一通り入力し終わったら、一番下の「Test Connection」を押すことで接続テストが可能です。
Connectionが作成できたらジョブを作成しましょう。

ジョブ作成

まずはジョブを作成したいワークスペースに入ります。
そして以下の画面で右上の「New package」をクリックします。

すると以下の画面が表示されます。「Name」はジョブの名前、「Type」はジョブのタイプで、通常はDataflowで構いません。そして「Template」、これもその名の通りテンプレートとしてジョブの大枠が作成されるのですが、複雑な処理でもないのでBlack、つまり「空」でOKです。

こちらがジョブ作成画面となります。
既に色々作成してしまっておりますがご容赦を。

細かく手順を書いてしまうと話が長くなってしまいますのでジョブ作成のポイントとなる箇所をかいつまんで説明します。
XplentyはETLかつノーコード・ローコードツールでもあり、コードとして必要なのはSQLのみとなります。
逆に言えばSQLさえ知っていれば、処理内容によってはSQL文を知らなくてもデータ連携が可能となります。
ジョブは「コンポーネント」と呼ばれる部品単位で構成されます。
今回は
file_storage_1:「ストレージからCSVファイルを読み込み」
select_1:「必要に応じてデータの変換・取捨選択を行い」
database_1:「SQL Databaseに書き込む」
という3つの処理で構成され、以下のように3つのコンポーネント、部品で構成されます。

コンポーネントは先ほどのジョブ作成画面の「Add component」をクリックすることで以下の画面が表示されるので、ここで必要なコンポーネントを取り出し、各コンポーネントで必要な設定を行い、コンポーネント同士をつなげることでジョブが作成できます。

「Sources」はデータ元、連携元の処理、「Trasformation」は連携途中に必要な処理、「Destinations」は連携先の処理となります。
コンポーネントには「REST API」もありまして、連携先のツールがAPIを提供していればそれを呼び出して操作することも可能です(但し全てのAPIを呼び出せるわけではないのでご注意ください)。
今回のジョブを実行すると、以下のようなID、EMAIL、NAMEという3つの列を持つCSVファイルをBLOBから読み込み、

以下のようにSQL Databaseに出力することができます。

今回はほぼ右から左へとデータを移行しただけですが、コンポーネントによってはソートやフィルター処理を始めとする様々な変換処理を行うことが可能です。

機会があればもう少し詳しくご紹介できればと思います。

最後に

かなり駆け足で説明しましたが、これがXplentyの概要となります。
繰り返しになりますが、エンジニア以外の方でもコードを書かずに部品を組み合わせるだけで簡単にデータ連携が行えるというメリットは、逆にエンジニアにとっても非常に魅力的です。
是非こういったツールを活用し、作業効率化をはかり、そしてデータの集約・整理を行って、それをデジタルマーケティングやBIに生かしてみてはいかがでしょうか。

手前味噌で恐縮ですが、当社はデータ連携の更にその先、PowerBIによるデータ可視化のサービスも行っておりますので併せてご検討ください。

データ可視化 導入支援サービス | 株式会社ネクストスケープ

ただ、こういったノーコード・ローコードツールはお客様によっては痒い所に手が届かず。。といったことも起こり得ます。
そういった場合はフルスクラッチでプログラミングを行い、バッチ処理を作成するといったことが必要になります。
いずれの場合も当社であれば対応可能ですので、データ連携を行いたいが何がベストなのかお困りの場合は是非ご相談ください。

お客様に寄り添い、お客様にとってベストな方法をご一緒に検討させていただければと思います。