Embulkで検証中に引っかかったことメモ
前回、こんな感じでRe:dashよりも先にやることがあるだろう、と気づいたわけです。
mao-instantlife.hatenablog.com
というわけでEmbulkで各種データソースの読み込みから始めています。
Embulkとは?
バルクデータローダーです。inputとoutputの形式が各種プラグインで提供されていて *1 、対応可能なストレージの種類が多いのが特長です。
他にも公式サイトのアピールとしては、
などありますが、後者二つはまだ試していません。
いつものごとく、公式ドキュメント見れば事足りるインストールやセットアップは割愛。最近はこの辺で試行錯誤して環境による注意事項書かなきゃいけないようなツールが減ってきましたね、いいことです。
覚えておきたいサブコマンド
- example
- guess
- preview
- run
- gem
- mkbundle
プラグインはグローバルなインストールだけではなくて、プロジェクトごとにGemfileつくってバンドルすることもできるようですね。実行環境をテキストで管理できるのは、作る上では嬉しいことです。
exampleはその名の通り、とりあえずローカル実行可能なデモ用の設定ファイルをつくってくれます。試すのにもデータソース作らないといけないの面倒臭いとかそういうニーズがあるんでしょうね、きっと。
guessが入力ファイルフォーマットの自動で、推測した結果を完全な設定ファイルにして出力してくれます(基本は標準出力?)。が、Elasticsearch用のものなどプラグインによっては未対応のものもあるので、全面的に頼れるわけではないようです。
見つけたプラグイン
- MySQL
- Elasticsearch
- Google Analytics
MySQLのGEOMETRYタイプ問題
Unsupportedですよ、と。
それはそれでいいんですが、エラーメッセージに column_options
に type: string
を追加しろと言ってる割には追加してもエラーで変わらず。エラーメッセージの間違いだったようです。
で、対応するにはクエリでキャストするなりの工夫が必要です。
まあ、今回は無理してGEOMETRYタイプを使わなくてもいい案件だったので素直に検索対象から外すことにしました。
Google Analytics APIが有効にならない問題
以下の流れで追加したユーザの認証キーを突っ込んで実行してみたんですがね。。。
Error: forbidden: Google Analytics Reporting API has not been used in project mallnavi-1352 before or it is disabled.
はあ、そうですか。。。APIのリクエストにはカウントされてるし、ちょっとよく分からない。
迂回路は幾つかありそうですし、となると優先順位は全体像を作ることなので、とりあえず放っておくことにして、digdagとEmbulkを組み合わせてみようかと思います。