データ分析基盤の環境構築におけるユースケースが最も多いtrocco®。簡単な操作とシンプルなUIが特徴のETLツールですが、ビジネス固有の要件によっては、どうしてもコードを書いて解決しなければならないシーンも発生します。
本セッションでは、trocco®のプログラミングETL機能を活用し、システム間データインターフェースを柔軟に一元管理されている事例をご紹介します。MaaSビジネスを展開するスマートドライブ社で処理される膨大な量のデータマネジメントを、trocco®を通してどう実現し、そしてどのような成果をもたらしたのでしょうか。
株式会社スマートドライブの山本氏をお招きし、trocco®のプログラミングETL機能の活用事例をご紹介いただきました。
データ分析基盤の環境構築が、ユースケースとして最も多いtrocco®のご利用目的ですが、本セッションでは、trocco®のプログラミングETL機能を活用し、システム間データインターフェースを柔軟に一元管理されている事例を紹介します。MaaSビジネスを展開するSmartDrive社で処理される膨大な量のデータマネジメントを、trocco®を通してどう実現していったのか、どういった成果をもたらしたのか、同社をお迎えしお話しを伺います。
ビジネスに合わせた柔軟なデータ連携を実現!スマートドライブ社が実践するプログラミングETL機能の活用術
写真は右から
山本 剛央 氏 (株式会社スマートドライブ Mobility Data Consultant)
鈴木 健太 (株式会社primeNumber 取締役執行役員 CTO エンジニアリング本部長)
移動データを活用することで「移動の進化を後押しする」スマートドライブ社
海外ECや人材系の企業にて、データ分析やデータ分析基盤の構築を経験したのち、株式会社スマートドライブに参画した山本 剛央氏。同社では、モビリティデータコンサルタントとして移動データの解析の基盤構築や分析、クライアントへのコンサルティング業務に従事しています。
本セッションでは、以下の2つのアジェンダで進行しました。
- スマートドライブの取り組みのご紹介
- trocco®プログラミングETLの活用事例
まず始めに、山本氏よりスマートドライブ社の取り組みのご紹介として、提供しているサービスの概要やデータ活用の状況について、お話しいただきました。
「弊社は『移動の進化を後押しする』というビジョンを掲げ、センサーデータの収集や解析、そしてさまざまなモビリティサービスに活用できるオープンプラットフォームを提供しています。
以下の図表で弊社のビジネスモデルをまとめています。
まず一番下のレイヤーがデータインプット領域です。データを収集するために自社で開発した、自動車のシガーソケットに挿すだけのセンサーデバイスや、サードパーティの業者さんからご提供いただく通信型ドライブレコーダー、そして官公庁との取り組みで可能になったETCの計測器など、さまざまなデバイスから移動データを収集しています。
これら多種多様なデバイスから収集したすべての移動データは、1つ上のレイヤーであるデータプラットフォーム領域で一箇所に集約されます。そのプラットフォームが、弊社が保有する『モビリティデータプラットフォーム(Mobility Data Platform)』です。
このプラットフォームに集約された移動データは『モビリティデータアナリティクス(Mobility Data Analytics)』というサービスとして、パートナー企業様に分析データをご提供したり、『モビリティデータウェアハウス(Mobility Data Warehouse)』では、データごとご提供するサービスを展開しています。
さらに1つ上のサービス領域のレイヤーでは、toC向けのドライバーエンゲージメントサービスや法人様向けの車両管理サービス、安全運転の促進サービスなど、さまざまな課題を解決するためのサービス開発に取り組んできました。自社だけでなく、大企業様や自治体、官公庁、大学といったさまざまなパートナー様と取り組んでいることも特徴です」(山本氏)
これまでスマートドライブ社が手掛けてきた具体的な課題解決の事例として、以下のようなケースが挙げられました。
- 企業が保有している社用車の台数を最適化する
- 走行エリアを可視化し、よりコストが掛からない配送計画を企画する
- 運転傾向のデータから、将来交通事故を起こす可能性を予測し、保険料金に活用する
しずおかMaaSプロジェクト様との事例
静岡市民が、自動車でどこに移動しているのか分析し、公共交通機関のルートといったまちづくりに活かす
本田技研工業様との事例
EVバイクのデータから、リアルタイムで車両を管理するシステムを提供
出光興産様との事例
観光地に設置された超小型EVからデータを取得し、観光客がどのようなルートで観光しているかを可視化。観光マップの作成や飲食店との提携などの施策に応用
モビリティデータプラットフォームのデータ転送を支えるtrocco®のプログラミングETL
続いてのアジェンダ「trocco®プログラミングETLの活用事例」では、同社のビジネスモデルにおいて、trocco®がどのような役割を担っているのか、ご紹介いただきました。
データ転送元はMySQLといったデータベースやクラウドストレージシステム、その他にSalesforceやkintoneなどのSaaSサービスが中心です。
一方、データの転送先であるプラットフォームとして、自社で接続設定ができ、よりスピーディかつ柔軟にデータを取り扱える環境を実現するため、BigQueryによってDWH(データウェアハウス)の環境を構築しています。
「データ転送元のデータを集めて統合し、データ転送先に流していくプロセスにtrocco®を活用しております。
このプロセスで活用している機能である、trocco®のプログラミングETLについてご紹介します。プログラミングETLとは、データを転送している最中にRubyやPythonによってデータ変換処理などが実行できる機能です。
trocco®の転送設定の編集ページでは、左側にコードを記述すると、右側の画面にその結果が表示されるため、直感的に操作できるようになっています」(山本氏)
プログラミングETLで郵便番号データを整え、表記を統一
機能がリリースされた初期からご活用いただいている同社は、プログラミングETLをどのように活用しているのだろうか。大きく3つの活用シーンに分けてご紹介いただきました。
1. データの前処理(郵便番号フォーマット)
「書式の揃っていない郵便番号データを統一した書式に変換するケースです。郵便番号には、数字が半角か全角か、ハイフンの有無など、複数の書式パターンがあり得ます。
自社のデータベースと接続をしている場合は問題ないのですが、パートナー企業からご共有いただくデータは、書式が揃っていないことが多いのです。
しかし、trocco®でデータを転送する際に、プログラミングETLエディタに2行を追加するだけで、簡単に書式が統一できます。Pythonのモジュールをインポートするための1行と、書式を統一し、そのデータを新しく定義した『postal_code_formated』というカラムに格納するための1行です。
難易度は高くないものの、後で処理すると面倒な業務には便利な機能だと思います」(山本氏)
データ転送時に緯度経度のデータをEncoded Polylineへ変換
2. データの変換(Encoded Polyline)
「移動データに特化した処理なので分かりにくいかもしれませんが、Encoded Polylineを事前に生成したいケースの活用事例です。
Encoded Polylineとは、自動車が走行したルートを線で可視化したいときに使用される、エンコードされた文字列のことで、もともとは数秒ごとに緯度経度が羅列されている情報を短い文字列にまとめたものです。
Encoded Polylineの生成には、全部で11個のアルゴリズムを組み合わせる必要があり、もしそれをデータ転送先のDWH、例えばBigQuery上でSQLだけで作ろうとすると、非常に大変です。そのため、データを転送をするタイミングでEncoded Polylineができているのは非常に助かります。
具体的な方法としては、trocco®で転送する際に、日付でGROUP BYした緯度経度の配列に変換。その後、プログラミングETLのエディタに2行を追加するとEncoded Polylineが生成できます。Pythonのモジュール(Encoded Polylineの生成に必要な11個のアルゴリズムが書かれたもの)をインポートするための1行と、モジュールで変換したデータを、新しく定義した『encoded_polyline』というカラムに、格納するための1行です。
このような複雑な処理に関しても、プログラミングETLがあることによって、かなり少ない手間でデータの変換作業ができるようになっています」(山本氏)
APIコールで緯度経度のデータから日本語の住所情報を取得し、データに追加
3. データの追加(APIコール)
「緯度経度のデータから住所テキストを取得し、データに追加したい場合に活用する機能です。
弊社のセンサーデバイスから取得するデータの例でご紹介します。エンジンをオンにしてからオフにするまでのデータを1tripとして保持しているテーブルがあります。走行を終了した日時や緯度経度などのデータがテーブルに上がってくるのですが、分析する際に、住所のデータが必要になることがあるのです。
こうしたケースでもプログラミングETLはとても便利で、データ転送をする途中にGoogleのジオコーディングAPIをコールし、その結果で返ってきた住所情報をレコードとして挿入する、といった処理を実行することができます。
この処理の応用として、走行終了位置の緯度経度の周辺にある観光スポットを、GoogleマップのPOI(Point of interest)データから引っ張ってくることもできます。この応用は、前述の出光興産様との事例で活用しました」(山本氏)
セッション前半の総括として、山本氏よりプログラミングETLを利用するメリットを3つ挙げていただきました。
「まず1つ目は、データ転送先で処理するには複雑で面倒な処理でも簡単にすることができます。2つ目は、APIコールで簡単に情報を追加することが可能です。
そして最後に、例外処理やきめ細かい処理も対応できることが、非常に便利だなと思っています」(山本氏)
他社ETLツールの導入や自社システムの開発を経て、なぜtrocco®を選んだのか
セッションの後半では、進行の鈴木より今回の活用事例を受けての質疑応答の時間が設けられました。まず最初の質問が、データエンジニアリングのチーム体制について。どのようなチーム体制でデータ活用やサービス開発が進められているのでしょうか。
「実は弊社には、データエンジニアリングチームは存在していません。先ほどご紹介したように、センサーデバイスからのデータをプラットフォームに収集しているチームと、プラットフォームに蓄積されたデータをお客様に届けるために、DWHとデータエンジニアリングを担当する、2つのチームに分かれています。
現在では、後者のDWHにデータを集めるプロセスでtrocco®を活用させていただくことが多いですね」(山本氏)
trocco®導入以前は、他社製のETLツールをいくつか導入していたことや、オープンソースで独自にETLシステムを組んでいたこともあるスマートドライブ社。なぜ数あるETLパイプラインツールの中からtrocco®を選んだのでしょうか。その理由についてお聞きしました。
「過去に試したさまざまなツールや手法も、trocco®であればすべて網羅できたことが、選ばせていただいた1つの理由です。
あとはシンプルに使いやすいこと、そして今回のセッションのテーマでもあったプログラミングETLの使い勝手も高評価でした。困った時にスピード感を持って手厚く対応いただけるサポート体制も、継続して活用している理由になっています」(山本氏)
データ分析基盤の環境を構築する際、ビジネス固有の変換要件があるために、どうしてもコードを書いて解決しなければならないシーンは珍しくありません。そうしたニーズにお応えするため、trocco®上で解決できるプログラミングETLは、ぜひ多くの企業にもご活用いただきたいと考えています。
登壇者
SmartDriveに参画後、Mobility Data Consultantに就任。移動データの解析の基盤構築や分析、クライアントへのコンサルティング業務に従事。
企業情報
https://smartdrive.co.jp/
設立:2013年 10月
資本金:36億9,100万円(資本準備金等を含む)
事業内容:ハードウェアやアプリケーション、テレマティクスサービス等の開発・提供、およびデータ収集・解析