〜実例集〜DOMO活用において強力な機能、ETLについて深く知る

デジタルマーケティングジャーナルでは、これまでに「神エクセルを駆逐する」というタイトルなどで記事DOMOの活用事例をいくつかあげてきました。 DOMOを使っているとやりたいことが本当にたくさん出てきます。今回は、その中でも色々な活用が期待される処理を解説していきたいと思います。

Domoで挑戦、神エクセルを駆逐する
Domoで挑戦、神エクセルを駆逐する〜その2〜

まずは簡単肩慣らし、「0」落ち問題を解決したい。

DOMOはファイルのアップロードが出来るので、当然Excelファイルも取り込めます。 ところがこのExcelファイルが中々厄介な性質を持っていて・・・。 その一つが(頭)「0」落ち問題です。

Excelでの、「実データ」と「表示」が異なることに起因するのですが、他ツールで頭0がついていたとしても、Excelに落とした時に数値型とみなされた場合には、頭の0は(Excelの好意によって)除外されてしまいます。 これはあるツール内であればよいけれど他のツールにつなぐと困ってしまうという良い例ですよね。

IDの頭に0がを付けることが出来ました。

 

DOMOでのETLには、少し前に「文字列演算」が追加されたので、それを使うと簡単です。

  1. 定数として複数桁0の列を用意する(4桁固定なら4桁の0)
  2. 定数として追加した0列が先にくるように、列を結合することで「0000123」いった形になる
  3. 文字列演算し、右側から固定分の桁を取得(例えば4桁)することで、「0123」と抽出が出来る

如何でしょうか。この例では、複数桁の列を用意する(ある意味無駄な列を作る)ことが、重要な要素になっています。

異なる用語を統一したい。

部門間で業務を遂行していく中で、元々は同じ表現だったものが、段々派生していく、というのもよくあるケースです。 マーケティングでも「MQL」「SQL」と簡単であればよいのですが、 α部門では、「ML」「MQL」「MQL1」「MQL2」「MQL3」 β部門では、「MQL」「見込みMQL」「MQL落ち」「SAL」 など・・・。 いやどちらかに揃えればいいじゃないか、というお話ではあるものの、システムに組み込んでしまっていては中々この項目を変えるだけでも大変です。

しかし、DOMOなら大丈夫・・!

この場合は、別のExcelでマスタデータセットを作ることで解決できます。 どういうことかというと、以下の画像のような表を作ります。

それぞれの部門で異なる表現でも表示項目で統制が取れました。

 

そして、DOMOで結合してあげます。

  • α部門のデータ・セットの「MQL1」があたり、共通用語の「MQL1」を返します。
  • β部門のデータ・セットには「見込みMQL」があたりますが、共通用語の「MQL1」を返します。

DOMOで表示するものは「共通用語」のカラムを設定すればα部門・β部門で異なる値を使っていても、DOMOでの表示は同じものを表示できることになります。

重複データを削除したい。しかもあるロジックに従って。

データを扱う上で重複データは避けられないところです。しかもDOMOは色々なデータを結合することに強みがあります。 それが時として災いとなり・・・結合は少し設定を間違えると重複データが大量にできてしまうことになります。 きちんと設定しても重複することも逃れられない状態です。それを単純に削除するなら良いのですが、何かとロジックは仕込みたいところです。例えば最終更新日とか。

そこで強力に活用されるのがDOMOでの、「ランクとウインドウ」です。これ、あまり知られてないですが、最強機能の一つだと感じています。

「登録日」「ID」が同じ場合、ユニークIDは1,2・・・と振られます。

具体的にどうやるかというと・・・ まずはあるロジックで絞った行番号を振っていきます。 例えば、登録日とIDで絞って行番号を振ります。

通常行番号を振るだけだと、上から1,2,3・・・と振られていきますが、 登録日とIDで絞って振っているので、同じ登録日で同じIDのみの場合、1,2と振られていき、 それ以外は全て1が振られます。 すなわち同じ登録日と、同じIDでユニークないIDが振られていくのです。

ということは、その新しい列から「1」でフィルターをかければ・・・ どうでしょう。見事にロジック通りに重複削除が可能となるのです どうしてもツール間では結合をしていかねばならないので、 ロジックに基づく重複削除は便利で仕方がありません。

番外編:時差を調整したい。

デジタルツールは海外製品も多く、そうすると意外と考えなければならないのが時差問題です。 UTCとJSTという時差があるというのはあまり普段は意識しないかもしれませんが、デジタルツールを使っていると否が応でも気にしなければなりません。

本当は今日のコンバージョンだったのに、日時持ってるせいで昨日についてしまう、など誤差の範囲と許せる企業もあるかもしれませんが、許せない企業もあるものです。

さて、またDOMOのETLでこの処理を調理していってみたい・・・ところですが、 ここではSQLで記述します。

SELECT CONVERT_TZ(`CreatedDate`, ‘Asia/Tokyo’,’UTC’) AS `CreatedDate` FROM `Salesforce_商談`

例えばSalecforceのコネクタから取得したデータセットですが、時差を解決したい行に対して、たった一行 SQLを書いてください。『CONVERT_TZ(`列をここに`, ‘Asia/Tokyo’,’UTC’) AS `列をここに` 』「列をここに」と書いているところに列を記述するだけです。

ところが、もし、これをETLでやると結構大変なのです。

まず、日時を持つ列を、日、時間、分に分けます。 時間と分を分けることが重要です。 そして、時間に+9します。(ここは時差で調整してくださいね) そして、再び時間と分を結合します。 ここで日も考えないといけないので、時差によっては日を増減させてください。 そして最後に分割した日、時間、分を結合します。

どうでしょうか? ちょっとしんどいですよね。 SQLだと、1文ですみます。 今回、番外編として紹介したのはそれが理由です。

結局は使い方と使い所

気付いた人もいらっしゃるかもしれませんが、今回のお話は実は全てSQLでも出来ることです。 ただ、そもそもSQLを知らない人が簡単にデータを操りたいという思いもあるでしょうし、 SQLだと逆に結構面倒なことも多かったりします。

アンダーワークスでは、DOMOのETLの手法を参考にTreasure DataのSQLのクエリを書いたり、逆にTreasureDataのSQLクエリからETLを作ったり、行ったり来たりしています。 デジタルマーケティングも世の中に色々出てきている中、一つのツールで専門的に行うよりは、良いところを参考に使っていくのが一番という良い例といえるかもしれませんね。 結局は、使い所で、使い方にマッチするかどうか、だと考えています。

あわせて読みたい記事