冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

Embulkで検証中に引っかかったことメモ

前回、こんな感じでRe:dashよりも先にやることがあるだろう、と気づいたわけです。

mao-instantlife.hatenablog.com

というわけでEmbulkで各種データソースの読み込みから始めています。

Embulkとは?

バルクデータローダーです。inputとoutputの形式が各種プラグインで提供されていて *1 、対応可能なストレージの種類が多いのが特長です。

他にも公式サイトのアピールとしては、

などありますが、後者二つはまだ試していません。

いつものごとく、公式ドキュメント見れば事足りるインストールやセットアップは割愛。最近はこの辺で試行錯誤して環境による注意事項書かなきゃいけないようなツールが減ってきましたね、いいことです。

覚えておきたいサブコマンド

  • example
  • guess
  • preview
  • run
  • gem
  • mkbundle

プラグインはグローバルなインストールだけではなくて、プロジェクトごとにGemfileつくってバンドルすることもできるようですね。実行環境をテキストで管理できるのは、作る上では嬉しいことです。

exampleはその名の通り、とりあえずローカル実行可能なデモ用の設定ファイルをつくってくれます。試すのにもデータソース作らないといけないの面倒臭いとかそういうニーズがあるんでしょうね、きっと。

guessが入力ファイルフォーマットの自動で、推測した結果を完全な設定ファイルにして出力してくれます(基本は標準出力?)。が、Elasticsearch用のものなどプラグインによっては未対応のものもあるので、全面的に頼れるわけではないようです。

見つけたプラグイン

MySQLのGEOMETRYタイプ問題

Unsupportedですよ、と。

それはそれでいいんですが、エラーメッセージに column_optionstype: string を追加しろと言ってる割には追加してもエラーで変わらず。エラーメッセージの間違いだったようです。

github.com

で、対応するにはクエリでキャストするなりの工夫が必要です。

gist.github.com

まあ、今回は無理してGEOMETRYタイプを使わなくてもいい案件だったので素直に検索対象から外すことにしました。

Google Analytics APIが有効にならない問題

以下の流れで追加したユーザの認証キーを突っ込んで実行してみたんですがね。。。

  • API Managerでサービスアカウント追加
  • API ManagerでAPIの利用を追加
  • Analyticsにユーザ追加して権限を「編集」に設定
Error: forbidden: Google Analytics Reporting API has not been used in project mallnavi-1352 before or it is disabled.

はあ、そうですか。。。APIのリクエストにはカウントされてるし、ちょっとよく分からない。

迂回路は幾つかありそうですし、となると優先順位は全体像を作ることなので、とりあえず放っておくことにして、digdagとEmbulkを組み合わせてみようかと思います。

*1:中はJRubyで動いているらしくgemでインストールします