Posted at

TreasureDataの2015年を新機能で振り返る

More than 3 years have passed since last update.

普段トレジャーデータでサポートしてる@nora96oです。

今回は、Treasure Data Advent Calendar 2015の10日目の記事です。

去年は、TreasureDataの1年半を機能面で振り返るという記事を12月に書いたので、今年も2015年を振り返ってみます。


Streaming Import


Fluent Bit

Fluentd Bitという組み込みLinux向けにC言語で書き直された軽量のFluentdをリリースしました。

MQTTやXbee Input Pluginを持っていてIoT向けのFluentdといったところです。

fluentbit

ちなみにMailing ListやSlackなどもあって、興味があれば参加してみていただけると嬉しいです。

メインメンテナのEduardoが喜びます。


td-agent

みなさんのtd-agentのバージョンは2系になっていますか?

td-agent1系をまだご利用の方がいれば、td-agent2にアップグレードしていただければなと思います。

参考:

Fluentd本体については、Fluentd update 2015でもチェックしてみてください。


SDKs


Tokyo RegionのSDK Backend Serverの設置

SDK経由のインポートのレイテンシ改善のために、日本のRegionにもBackend Serverを設置しました。

参考:


Android SDK

Android SDK v0.1.8をリリースしています。

ここでの大きな違いとしては下回りのライブラリを変更し、不要なメソッドを除去しています。

これにより、Androidの65kメソッドまでしか登録できない制限に対応しています。

ちなみに、メソッドの数を9700から3000まで削減しています。

参考:


iOS SDK

iOS SDK v0.1.8をリリースしています。

特別大きな変更をしているわけではありませんが、アップロードのRetryのハンドリング改善などを実施しています。

参考:


Javascript SDK

Javascript SDK v1.5.1をリリースしています。

ちなみにv1.4.0からリクエストの方式がCORSからJSONPになっています。

ページ遷移が非常に高速な場合に、リクエストがきちんと行われる前にページ遷移してしまい、データの取りこぼしがあるという問題がありました。

しかし、この変更により従来よりもリクエストに必要な時間を半分にすることができ、ページ移動が高速に行われた場合などの取りこぼしを低減できるかとおもいます。

参考:


3rd Party Analytics Serviceとの連携

今年は、Callback URLがあるような3rd PartyのAnalytics Serviceとの連携も進めてきました。

これにより3rd partyのサービスのSDKを入れるだけで、TreasureDataにもサービスでデータ転送が行われるようになります

また、シンプルな分析は、3rd paraty側、ローデータを使ったより詳しい分析や他のデータソースと組み合わせた分析をするならTreasureData。という住み分けが出来るようになったかなと思います。


Segment

Segmentは、いろんなサービスにデータを経由してくれるサービスです。

SegmentのSDKを入れておくだけで、TreasureDataやGoogle Analyticsなどなど他のサービスとの連携を可能にします。

参考:


adjust

adjustは、リアルタイムに売上、イベント数、セッション数、インストール数、クリック数といった定量データに加え、コホート分析に基づいて、広告がどのような効果を可視化するためのサービスで、コールバックURLをつかってTreasureDataにもデータが送れるようになりました。

参考:


Batch Import

Batch Importとして、これまでTreasureDataでは、tdコマンドに付属したtd importコマンドを提供しておりました。

しかし、バッチ処理の複雑さ・大変さに対応できるようなアーキテクチャになっていなかったため、Embulkというバッチ処理フレームワークをOSSとして公開しました。

今後、バッチ処理のデータインポートのデファクトスタンダードになっていけるようにサポートしていきたいと思うところです。


Embulk

EmbulkをまさにOSSとして公開しました。

Embulk Advent Calendar 2015があるので、こちらでいろんな機能について知ることができるかと思います。

参考:

ちなみにEmbulkを利用して、TreasureDataにデータをインポートするには、embulk-output-tdをご利用ください。


DataConnector

サーバサイドでクライアントレスなデータインポートするとして、DataConnectorをリリースしました。

DataConnectorのコアは、Embulkとなっており、データソースから取ってくるためのPlugin自体はOSSとして公開されているものばかりです。

TreasureDataがDataConnectorを改善していけばいくほど、Embulkにもそれがそのまま適用されていくという構造になっており、OSSと共にビジネスも進めていくことができるのかなとおもいます。

まだ、WebConsoleからのジョブ登録などはできないため、tdコマンドをインストールして利用する必要があります。

データのインポート先もこれからどんどん増えて行きますので、ご注目ください。

ちなみに、自分のバッチ処理フレームワークにインポートツールを組み込みたい場合には、ユースケースにもよりますが、DataConnectorではなく、Embulkの利用も良いでしょう。

また、DataConnectorではLocal Executor Pluginでデータのインポート処理を現在は行っています。

しかし、そのうちMapReduce Executor Pluginによって、TreasureDataのHadoop環境でデータのインポートを行うことができるようになります。


Web Console

Web Consoleでは内部的な改善として、Rails3からRails4になったり、次のConsole v3を目指した準備が着々と進められています。


Account IP Whitelist

機能追加としては、ユーザ単位のIP WhiteListはありましたが、アカウント全体に対してのIP WhiteListが追加されました。


Query Engine


Hive


Hadoop2への移行

Treasure Data Update 2015 - Hadoop

でも紹介している通り、Hadoop1(CDH4)からHadoop2(HDP2)への移行が行われました。(ついに・・・

これにより、Hive0.10からHive0.13にアップグレードしています。

主な変更点はHive 0.13 Major ChangeLogを参照ください。


Hivemallの導入

Hiveで機械学習ができるライブラリのHivemallを導入しました。

これで、オフラインの機械学習をTreasureData上で実施するなどの仕組みが行えるようになりました。

また、それだけでなく、Hivemallのライブラリで利用できる関数も使うことができ、機械学習をしなくても便利なことが色々できるようになりました。

例えば、normalize_unicodeeach_top_k関数があります。

ここらへんについてもどこかで紹介できればなと思います。

参考:


Hive New UDFs

TreasureData独自関数もHivemall以外でも増えました。


Presto


Presto本体のアップデート

現在のTreasureDataのPrestoのバージョンは、0.128(記事投稿時のPresto最新)となっております。去年自体で0.88だったので、だいぶアップデートを行いました。

これに伴って機能追加自体も大きくありました。

詳しくはこちら・・・https://prestodb.io/docs/current/release.html

別な機会にまとめます・・・

大枠はTreasure Data Update 2015 - Prestoを参照ください!


Presto New UDFs

TreasureDataで新規に追加UDFもあります。


Result Output

外部への書き出し機能も続々と追加されてきています。

GoogleやAWSの各種サービスとの連携も増え、TreasureDataと他のサービスとでのポジションの違いなんかをより明確にする準備が整ってきているように思います。


Other tools


re:dash

手前味噌ですが、re:dash pluginを作ってみました。

クエリを登録していろんなデータソースからデータを取得して可視化できるダッシュボードにできるオープンソースのダッシュボードツールです。

参考:


Luigi

Pythonによるワークフロー管理ツールのためのプラグインluigi-tdもリリースしました。

しかし、luigi-tdの代わりにtd-client-pythonを使っても良いですが、今年はワークフロー管理という言葉が徐々にWeb業界に広まってきたのではないかなと思います。今年最後にWorkflow Hacks! #1というイベントもやるので興味があれば、ぜひ参加ください。

参考:


Jupyter + Pandas

Pythonのライブラリとして人気があるPandasと、WebブラウザでインタラクティブにPythonを実行できるJupyterを利用して、TreasureDataとインタラクティブにSQLを実行して集計・可視化を行うこともできるようになりました。

参考:


Looker

LookerのOEM提供を始めました。

Lookerは、最近西海岸あたりではやりらしいBIツールです。

LookMLというマークアップ言語をつかって、データソースの設定やダッシュボードを作成することができます。

Tableauのようにアドホックに分析するというよりは、昔ながらの事前定義をして帳票を作ったりダッシュボードを作ったりというためのBIの進化系です。

参考:


DataTank

DataTankというデータマートのオプション提供を開始しました。

PostgreSQLをベースとしたRDBをトレジャーデータ側でホスティングする仕組みになっています。

BIツールとの接続性やシームレスな操作を考えると、既存のRDBを使うのがベストです。

また、それに加えてFDW(Foreign Data Wrapper)やcstoreなどの機能も合わせて備えています。これにより、TreasureData上のデータとDataTank上のデータをJoinするといったことも可能です。

参考:


td2slack

あまりアピールはしていなかったのですが、ユーザさんがいたので、紹介です。

TreasureDataのクエリ実行結果をSlackにPushするための中継サーバです。

参考:


その他


ロゴ

今年もまたロゴが変わりました。下町ロケットの帝国重工と被らなくてよかったです。


サポートツール

Desk.comとOlarkをつかっていたんですが、ZendeskとZopimに移行しました。

ZendeskとZopimが以前よりもUIが良くて好評なようで良かったです。


Desk.com Portal


Olark


Zendesk Portal


Zopim


フィードバックポータル

UserVoiceというサービスを使って、機能要望ポータルを開始しました。

こういう機能があったらいいなーというのをどしどしフィードバック下さい。

http://treasuredata.uservoice.com/forums/313566-general


まとめ

トレジャーデータで2015年にリリースされた新機能を中心に紹介してみました。

書き忘れているところもあるかもしれませんし、ここに書いている以外にも内部的な様々な改善や安定性を向上させるためのテストやリリース改善など、目に見えない数多くの取り組みを行っています。

来年はもっとトレジャーデータの魅力をたくさんの人に届けられるようにな活動をもっとしていきたいなあと思うところです。

トレジャーデータをご利用中に困ったことがあれば、お気軽にサポートチャットやサポートセンタまでお問い合わせください!