データ転送ツールのEmbulkは大量データの投入に威力を発揮しますが、filter pluginを組み合わせることによってかなり複雑な処理も実現できるため、yamlで書けるETLツールとしても優秀です。 今回RDBMSで正規化されたテーブルにデータを投入する必要ができたので、unpivot処理を行うpluginを書きましたので公開しておきます。 github: embulk-filter-unpivot インストール
merge_direct モードで発行されるクエリは、抜粋するとこんな感じになる。実際にはプリペアドステートメントを作成した後でパラメータを設定してガシガシ回しているみたいだし、このクエリがそのまま発行されている訳ではない。 INSERT INTO ramen ( name, location, created_at, updated_at) VALUES ( 'しじみラーメン和歌山', '青森', '2015-07-19', '2015-07-19' ) ON DUPLICATE KEY UPDATE name = VALUES(name), location = VALUES(location), created_at = VALUES(created_at), updated_at = VALUES(updated_at) ; このクエリを次のように書き換えられれば、この悩みは解決し
結論 SQL で WITH mysql_native_password を使ってパスワードを定義する。 具体例 mysql> ALTER USER 'YOUR_USERNAME'@'YOUR_HOSTNAME' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD'; 補足 Embulk の MySQL プラグインを使ったら遭遇しました*1 DBeaver を使った場合も同様でした すなわち JDBC で起きるということでしょう 上記コマンドで ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgr
Embulkにはfilterプラグインという仕組みがあり、これを自作することで、Embulkで入力およびパースした結果を色々と加工することができます。例えば、「すべてのログにホスト名を追加する」といった、ログの種類によらない共通処理を定義するのに向いた仕組みです。 ただ、いろいろ試してみた結果、以前の記事で取り上げたような特殊なログを処理する場合でも、 パース処理の中で、一度完成したらほとんど直す必要がない基本的な部分 → parserプラグイン 試行錯誤しながら、何度か直す必要がある部分 → filterプラグイン と使い分けた方が、コードの見通しが良くなりました。個人的には、parserプラグインと同じくらいfilterプラグインも自作することが多そうなので、作り方をメモしておきます。 特定カラムに含まれる文字列を置換するfilterプラグイン 一例として、以下のようなCSVファイルを
Built-in Plugins Configuration Embulk configuration file format Local file input plugin CSV parser plugin JSON parser plugin Gzip decoder plugin BZip2 decoder plugin File output plugin CSV formatter plugin Gzip encoder plugin BZip2 encoder plugin Rename filter plugin Remove columns filter plugin Local executor plugin Guess executor Preview executor Logo Images Logo Square Horizontal Icon Customiza
Bulk Loadに特化したOSS Embulk まだ出始めなのでプラグインが少ないため、自己学習のため簡単なものを作ってみました 理解しているとは言えませんが、参考になればと思い、私が作った内容をシェアします 作成したプラグイン 指定ディレクトリ配下のファイルリストを取得するだけのinputプラグインです 下記githubにあげてみました ソースコード モジュール・クラス モジュールはEmbulk クラスは任意の名前ですが、InputPluginを継承してください また0.5(or 0.4?)からEmbulk配下にmodule Inputが必要となっています またファイル名がinput_xxxからxxxx(プラグイン名のみ)に変わり、ディレクトリ構成がembulk/lib配下からembulk/lib/inputに変わったのでファイル名とディレクトリにも留意ください
Embulk(エンバルク) (2016/10/05からロゴが変わりました。変更理由) Embulkのまとめ2ndを作ってます。 Embulk v0.11 でなにが変わるのか: ユーザーの皆様へ をご一読ください。 更新時にコメントを書くようにしました。変更内容に興味のある方は編集履歴をご覧ください。 2018年1月30日リリースのembulk 0.9からgemは提供されなくなりました。gem版は0.8.39までとなっています 種類 バージョン ロゴの下のバージョンは開発版の最新バージョンを表しています。一般の方は0.9系を利用しましょう 2015年1月27日、Fluentdのメインコミッターの一人古橋さんが中心となって開発した、fluentdのバッチ版のようなツールEmbulk(エンバルク)がリリースされました。 この記事は、Embulkってなに?、どんなプラグインがあるの?、どうやって独
こんにちは。古橋です。 先日の*1 データ転送ミドルウェア勉強会で、新しいオープンソースツール Embulk をリリースしました。 Embulk, an open-source plugin-based parallel bulk data loader from Sadayuki Furuhashi Embulk は、リアルタイムなログ収集では常識となった fluentd のバッチ版のようなツールで、ファイルやデータベースからデータを吸い出し、別のストレージやデータベースにロードするためのコンパクトなツールです。 fluentd と同様にプラグイン型のアーキテクチャを採用 しているため、RubyやJavaで簡単なコードを書くことで、様々なファイルフォーマットやストレージに対応することができます。一方で fluentd とは異なり、高速性やトランザクション制御、スキーマを使ったデータのバリ
はじめに すでに Ruby で書かれた Embulk plugins が登場しており、Embulk の利用シーンも段々と増えていると感じます。その一方で、Java で書かれた plugins はまだまだ少ないのではないかと思います。ちょうど、Embulk から Elasticsearch へデータを書き出す output plugin を書く機会があったので、その plugin の書き方をメモとして残します。 まずは Plugin Template を利用 Ruby であれ Java であれ plugins を作成するには、まず Embulk に用意されている new コマンドを実行するのがよいかと思います。New コマンドは、Plugin 開発に必要な gradle スクリプトや Embulk 本体が plugins を登録するために必要なスクリプトなどを自動で生成します。Embulk
The document discusses Embulk, an open-source parallel bulk data loader that uses plugins. Embulk loads records from various sources ("A") to various targets ("B") using plugins for different source and target types. This makes the painful process of data integration more relaxed. Embulk executes in parallel, validates data, handles errors, behaves deterministically, and allows for idempotent retr
ども、大瀧です。 本日開催されたデータ転送ミドルウェア勉強会で、開発者の@frsyukiさんによって語られたEmbulkを早速触ってみました。 Embulkとは EmbulkはOSSのデータ転送ソフトウェアです。もう少し細かく分類するとBulk Loaderと呼ばれる、バッチ処理のためのデータ読み込み、変換処理を行う機能を持ちます。特徴は柔軟なプラグイン構造で、データを読み込むInputPlugin、データを出力するOutputPlugin、さらに読み込み処理自体もExecutorPluginと、機能のほとんどをプラグインとして後から追加、カスタマイズできるよう高度に抽象化されたアーキテクチャになっています。データのハンドリングもプラグインでの実装を想定しているようなので、ここまで来るとミドルウェアというより、データ転送のインターフェースを定義するフレームワークの実装、という方が近い感じか
はじめに トレジャーデータはクラウドでデータマネージメントサービスを提供しています。 2015年1月,Fluentd のコミッター(弊社エンジニア)が中心となった「Embulk」というOSSが公開されました。このツールは大規模なデータセットのバルクインポートを行えるデータ収集ツールの1つに大別されるものです。 ↑ メインコミッターである当社エンジニア:古橋は Fluentd や MessagePack といったOSSを生み出してきました。そして,トレジャーデータのプラットフォームの根幹を作り上げたのも彼なのです。 Embulk とは何か? Embulkとはどのようなものなのでしょうか? バルクインポートを行うためのツールは,はるか以前からたくさん存在しますが,その中においてEmbulk の位置付けはどこにあるのでしょうか? 少しずつ紐といていきましょう。 「簡単に言うとFluentdのバッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く