普段トレジャーデータでサポートしてる@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といったところです。
ちなみにMailing ListやSlackなどもあって、興味があれば参加してみていただけると嬉しいです。
メインメンテナのEduardoが喜びます。
- Slack: http://slack.fluentd.org
- Mailing list: https://groups.google.com/forum/#!forum/fluent-bit
- Github: http://github.com/fluent/fluent-bit
- IRC: irc.freenode.net #fluentbit
- Twitter: @fluentbit
td-agent
みなさんのtd-agentのバージョンは2系になっていますか?
td-agent1系をまだご利用の方がいれば、td-agent2にアップグレードしていただければなと思います。
参考:
- fluentd - Treasure Agent(td-agent)の1と2の今後 - Qiita
- https://docs.treasuredata.com/articles/td-and-td-agent-deprecation-201510
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があるので、こちらでいろんな機能について知ることができるかと思います。
参考:
- https://github.com/embulk/embulk
- http://www.embulk.org/docs/
- Embulkを使ってS3上のELBのログをTreasureDataにインポート
ちなみにEmbulkを利用して、TreasureDataにデータをインポートするには、embulk-output-tdをご利用ください。
DataConnector
サーバサイドでクライアントレスなデータインポートするとして、DataConnectorをリリースしました。
DataConnectorのコアは、Embulkとなっており、データソースから取ってくるためのPlugin自体はOSSとして公開されているものばかりです。
TreasureDataがDataConnectorを改善していけばいくほど、Embulkにもそれがそのまま適用されていくという構造になっており、OSSと共にビジネスも進めていくことができるのかなとおもいます。
まだ、WebConsoleからのジョブ登録などはできないため、tdコマンドをインストールして利用する必要があります。
データのインポート先もこれからどんどん増えて行きますので、ご注目ください。
- Data Connector for Amazon S3
- Data Connector for Amazon Redshift
- Data Connector for Google Cloud Storage
- Data Connector for Riak CS
- Data Connector for FTP
- Data Connector for MySQL
- Data Connector for PostgreSQL
- Data Connector for Mixpanel
- Data Connector for SalesForce
- Data Connector for Marketo
- Data Connector for JIRA
ちなみに、自分のバッチ処理フレームワークにインポートツールを組み込みたい場合には、ユースケースにもよりますが、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_unicode
やeach_top_k
関数があります。
ここらへんについてもどこかで紹介できればなと思います。
参考:
Hive New UDFs
TreasureData独自関数もHivemall以外でも増えました。
-
TD_DIVIDE
- 0で除算したときにエラーにならずに、0を返却する関数
-
TD_SUBSTRING_INENCODING
- BYTE数で文字列する関数
-
TD_LAT_LONG_TO_COUNTRY
- 緯度経度情報から国名算出関数
-
TD_SUMIF/TD_AVGIF
- 条件付きでSUM/AVGする関数
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もあります。
-
TD_PARSE_USER_AGENT
- User Agentをパースする関数
-
TD_CURRENCY_CONV
- 為替レートの変換する関数
-
TD_IP_TO_COUNTRY_CODE
- IPアドレスから国コード表示
-
TD_IP_TO_COUNTRY_NAME
- IPアドレスから国名表示
Result Output
外部への書き出し機能も続々と追加されてきています。
GoogleやAWSの各種サービスとの連携も増え、TreasureDataと他のサービスとでのポジションの違いなんかをより明確にする準備が整ってきているように思います。
- Job Result Output to Google BigQuery
- Job Result Output to Google Cloud Storage
- Result output to nex8
- Result Output to MongoDB
- Result Output to Google SpreadsheetのGoogleのOAuth方式への対応
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を実行して集計・可視化を行うこともできるようになりました。
参考:
- pandas-td
- TreasureDataとPandasとJupyterでインタラクティブにデータを可視化する。
Interactive Analysis with Jupyter + Pandas + TD
Looker
LookerのOEM提供を始めました。
Lookerは、最近西海岸あたりではやりらしいBIツールです。
LookMLというマークアップ言語をつかって、データソースの設定やダッシュボードを作成することができます。
Tableauのようにアドホックに分析するというよりは、昔ながらの事前定義をして帳票を作ったりダッシュボードを作ったりというためのBIの進化系です。
参考:
DataTank
DataTankというデータマートのオプション提供を開始しました。
PostgreSQLをベースとしたRDBをトレジャーデータ側でホスティングする仕組みになっています。
BIツールとの接続性やシームレスな操作を考えると、既存のRDBを使うのがベストです。
また、それに加えてFDW(Foreign Data Wrapper)やcstoreなどの機能も合わせて備えています。これにより、TreasureData上のデータとDataTank上のデータをJoinするといったことも可能です。
参考:
- Announcing Data Tanks: Faster Reporting and Unlimited Connectivity
- https://docs.treasuredata.com/articles/data-tank
- Treasure Dataの新機能(Data Tank)をAudienceOneのレポート機能で利用した話
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年にリリースされた新機能を中心に紹介してみました。
書き忘れているところもあるかもしれませんし、ここに書いている以外にも内部的な様々な改善や安定性を向上させるためのテストやリリース改善など、目に見えない数多くの取り組みを行っています。
来年はもっとトレジャーデータの魅力をたくさんの人に届けられるようにな活動をもっとしていきたいなあと思うところです。
トレジャーデータをご利用中に困ったことがあれば、お気軽にサポートチャットやサポートセンタまでお問い合わせください!