サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
qiita.com/hiroysato
Digdagのembulkオペレータは、Digdagで定義した参照をEmbulkの設定ファイルないで利用することができます。 下記の例は、my_pathという変数をDigdagで定義して、Embulkの設定で参照する例です。 この方法を利用することで、RubyやPythonで定義した変数をEmbulk内で利用することができるようになります。 Embulkオペレータとshオペレータそれぞれを利用することができます。 Embulkオペレータの場合 注意: Digdagのembulkオペレータは現状Liquidの機能は使えません。 ディレクトリ構成 /tmp/hoge | |-- config.yml # <-- Embulk設定ファイル |-- csv | `-- sample_01.csv.gz |-- hoge.dig # <-- Digdagファイル
まとめ Liquidと環境変数を使って開発環境・本番環境のデータベース接続情報を分ける。 テーブル情報(クエリ設定)とデータベースコネクション情報を別ファイルで管理する はじめに 開発環境、本番環境によって接続するデータベースコネクション情報を変えたい。 何個もテーブルを読み込みするが認証情報は同じなので、共通化したい。 in: # # 開発環境と本番環境で分けたいところ # type: postgresql host: 127.0.0.1 user: user password: pass database: embulk_test # # 読み出すテーブルの情報によって設定が変わるところ query: "select * from table_name"
はじめに Digdagのサーバは、H2(Java組み込みデータベース)やPostgreSQL内にプロジェクトなどの情報を格納することができる。 Digdagのサーバの設定は次の三つの場所に格納できる(ようだ) H2オンメモリ H2パス指定 (組み込みJavaのデータベースでパスを指定して永続化) PostgreSQL 設定ファイルの形式 サーバの設定はJavaのシステムプロパティ形式で記述する(参考)。key = valueという形式です。 将来的にはHOCON形式で記述できるようになるかもしれないとのこと。use HOCON configuration format :で区切った形式でも大丈夫なようですが(参考)、各種サイトを見ると=で書いているほうが多いので、=で統一することにしました。 H2オンメモリの場合 digdag scheduler -mとすれば良いようだ。(参考) オンメモ
はじめに Digdagで定期実行するプロジェクトを作ってみました。 (表記ゆれというか用語間違いがあるかもしれませんのでお気づきの際はご指摘ください) 疑問 誰か教えてください。 セッションとアテンプトの違い? 1回のセッションで実行されたそれぞれのタスクの実行結果は確認できるのか? 現在はスケジューラを停止すると結果が消えてしまうが、結果を永続化するにはどうすれば良いか?(PostgreSQLを使う?H2でも永続化可能) スケジューラはスケジューラだけさせて別プロセス(別ホスト)でタスクを実行するには? プロジェクトの作成 foo.digを作成します。1分毎に現在時刻を表示します。その後"Hello"と出力します。 timezone: "Asia/Tokyo" schedule: minutes_interval>: 1 +current_date: sh>: echo `date` +
in: type: file path_prefix: {{ env.DATA_PATH }} # <-- liquid decoders: - {type: gzip} parser: charset: UTF-8 newline: CRLF type: csv delimiter: ',' quote: '"' escape: '"' trim_if_not_quoted: false skip_header_lines: 1 allow_extra_columns: false allow_optional_columns: false columns: - {name: id, type: long} - {name: account, type: long} - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
2016/06/15に、トレジャーデータがオープンソースとして公開したワークフローエンジンDigdagのリンク集です。内容は随時更新します。またトレジャーデータではDigdagを自社でTreasure Workflowとして提供しています。こちらの情報も収集しています。 変更内容が気になる方は変更履歴をご覧ください。 1. 開催されるイベント 2. オフィシャルページ オフィシャルページ ソースリポジトリ 3. チュートリアル Getting started (英語) Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag (日本語) Digdag 入門 Digdagのアーキテクチャとコンセプトを理解する Treasure Workflow for ビギナー 環境構築編 digファイル書き方編 Digdag公式ドキュメントからDigdagを学ぶ
1 概要 EmbulkのJava関連のコードは、Prestoと同じコードスタイル(Airlift codestyle)で記述されていますした。 (Embulk本体は、v0.9からGoogle Java Styleの一部修正版が採用されています。(2018/2/8追記)) 下記の手順で、プラグインのソースコードが同じコードスタイルになっているかどうかをチェックすることができます。 Gradleの設定とIntelliJ IDEA 15 CE(OSX)、 の設定それぞれについて解説します。 ちなみに、Gradleの設定は、embulk newしたときに自動的に生成できるようにするPRを作成しました。 [Propose] Add checkstyle settings in Java plugin generator いい悪いどちらでも是非、コメントください。 プラグイン内のコードスタイルをチェッ
2015-12-25 17:17:48.617 +0900 [INFO] (transaction): Using local thread executor with max_threads=48 / output tasks 24 = input tasks 1 * 24 これらの意味はつぎのようになるようです。 input tasks 1: inputタスクの数(fileの場合読み込んだファイル数) 24: min_output_tasksの値(初期値: CPUの数) output tasks 24: inputタスクの数 x min_output_tasks max_threads=48: max_threadsの数(初期値: CPUの数x2) ※ 上記CPUの数は、Linuxで言うところの/proc/cpuinfoのprocessorの数です。 検証 検証したハードウェア CPU
{ // (1) 独立したカラムに値を抽出(文字列) "phone_numbers": "1-276-220-7263", // (2) 独立したカラムに値を抽出(整数) "app_id": 0, // (3) 独立したカラムに値を抽出(浮動小数点) "point": -1601.6890336884562, // (4) 独立したカラムに値を抽出(日付部分のみ抽出) "created_at": "2015-10-07 20:23:57 +0900", "profile": { "like_words": [ // (5) 配列全体を抽出 "maiores", "eum", // (6) 配列の一部を抽出 "aut" // (7) 配列の一部を抽出 ], "anniversary": { // (8) ハッシュ全体を "voluptatem": "dolor", "et": "ullam"
Fluentdのバッチ版Embulk(エンバルク)のまとめ 来週のMeetupまでに100になるか気にしている佐藤(@hiroysato)です この記事はembulkアドベントカレンダー11日目の記事です。 2017/06/29 追記 embulk-output-elasticsearch 4ではメモリリークがあるらしく、大きなデータをロードするとOutOfMemoryになる模様(参考) 2017/5/19 追記 現状 Amazon Elasticsearch Serviceを使う場合embulk-output-elasticsearch_using_url を利用 参考 elasticsearch1~5を利用する場合: embulk-output-elasticsearch 4.0以降を利用 AzureやGCPは情報をおまちしております。 2017/3/29 追記 elasticsear
この記事はembulk advent calendarの6日目の記事です。 Qiitaでembulkのまとめを作っている佐藤(@hiroysato)です。 毎年11月29日のいいにくの日にに開催される全文検索エンジンGroongaの勉強会にて、全文検索エンジンGroongaにデータを投入するembulk-output-groongaの紹介をしてきました。 Groonga導入事例 Groongaについて Groongaは国産の全文検索エンジンです。全文検索機能を単体で使うだけではなく、MySQL(Mroonga)やPostgreSQL(PGroonga)に全文検索の機能を提供することができます。さらにPGroongaはJSONで格納したデータ内のすべてのテキスト値に関しても全文検索機能をサポートしています。 国産の全文検索エンジンだけあって、日本語特有の全角文字と半角文字の正規化などの機能も
type: file path_prefix: /tmp/embulk/test parser: charset: UTF-8 newline: CRLF type: csv delimiter: ',' quote: '"' escape: '"' trim_if_not_quoted: false skip_header_lines: 1 allow_extra_columns: false allow_optional_columns: false columns: - {name: ken_code, type: string} # キーカラム - {name: name, type: string} # # ここからがfilterの設定 # filters: - type: join_file # 元データにあるカラムの名前、parser内のカラム名と対応づけする base_co
テーブルの名前をちょっとだけ変えてcreate tableしたりデータをinsert intoすることがしたくなり、なにか良いツールはあるかな?と探していたところ、Cookpadの青木さんが「たべみる」で使われているbricolageを見つけました。 不思議と使ったという情報がみつからず、使用した記録をまとめました。 bricolageの利用例など是非教えてください。 参照サイト 巨大なバッチを分割して構成する 〜SQLバッチフレームワークBricolage〜 GitHub Wiki 試した環境 OS: OSX 10.11.1 Ruby: 2.2.3 PostgreSQL: 9.4.5 MariaDB: 10.0.21 導入 PostgreSQLとMySQL(mariadb)等が必要になるようなので事前に導入しておきます。 本体はgem install bricolageで導入できます。
Embulk v0.8.3 Usage: embulk [-vm-options] <command> [--options] Commands: mkbundle <directory> # create a new plugin bundle environment. bundle [directory] # update a plugin bundle environment. run <config.yml> # run a bulk load transaction. cleanup <config.yml> # cleanup resume state. preview <config.yml> # dry-run the bulk load without output and show preview. guess <partial-config.yml> -o <outp
まとめ Embulkの設定ファイルの中で同じ設定をしている部分を別ファイルにすることができます。 別のファイルにする設定ファイルは、_テンプレート名.yml.liquidという名前にします。 別の設定ファイルは、設定ファイルと同じディレクトリが起点ディレクトリになります。 読み込む設定ファイルは、サブディレクトリを作ることはできますが、親ディレクトリを..を使って参照することはできません。(セキュリティに関する配慮) 読み込み時に変数を設定することもできます。 include先のファイル名にハイフンは使えません。(理由は調査中) 動機 Embulkを利用する頻度が増えてくる場合、次のような問題が生じます。 同じ設定内容を、複数のYAMLファイルに記述しなければいけない。 設定ファイルが肥大化して管理するのが大変だ この問題は、Embulkに搭載されているテンプレートエンジンLiquidの機
はじめに ここ一ヶ月ほど触ってみてたEmbulkの利用方法の一例を示します。 もっと良い方法があるかもしれません。(是非教えてください) 古橋さんをはじめとしたトレジャーデータの皆様便利なツールを作っていただきありがとうございます。 Twitterで様々な質問に答えてくださった古橋さんに感謝いたします。 2016年6月29日追記: 参照してくださっている方が多いので最新のembulkの表記に修正しました。間違いがありましたらお気軽にお問い合わせください。 動機 いろいろなログが、メールやらファイルやらで蓄積されている。 RDBやElastic Search/Kibanaに簡単に突っ込んで可視化をしたい。 Embulk良さそう。 ログをCSVやTSVにするスクリプトは自前・ネットのものがある。 想定読者 圧縮された過去のログファイルが沢山ある(今回はPostfixのログ) ログを整形して加工
ちなみに当人、Javaは普段書きませんので、簡単なことでも教えていただけると非常にありがたいです。 右側の目次でやりたいことを探してください。 カラム カラムを絞る方法 元ネタ PageBuilderにデータを追加するときに、カラムを名前で指定して書けるようになりました v0.6.13から only-columns.java List<String> columnNames = task.getColumns(); ImmutableList.Builder<Column> builder = ImmutableList.builder(); int i = 0; for (String columnName : columnNames) { for (Column inputColumn: inputSchema.getColumns()) { if (inputColumn.getNa
embulk gem search embulk-filter -r 2015-05-30 18:20:50.064 +0900: Embulk v0.6.10 *** REMOTE GEMS *** embulk-filter-eval (0.1.0) embulk-filter-speedometer (0.2.2) Inputプラグイン RDBMS & NoSQL Embulk(エンバルク) データベースプラグイン覚書も参照ください。 embulk-input-mysql MySQLのテーブルからデータを取得するJDBCプラグイン embulk-input-postgresql PostgreSQLのテーブルからデータを取得するJDBCプラグイン embulk-input-jdbc JDBC用プラグイン Oracleなど接続用 Oracleは使えるはずDB2は要書き換え。 SQLit
まとめ embulk本体はJava7で動作するように作られているようです embulkの各プラグインは、プラグイン開発者の環境に依存しJava7で動かないこともあるようです。 Java7で動かない場合でも自分でコンパイルをすれば動くことがあるかもしれません。 build.gradleにオプションを追加することで、Java8上でJava7互換のバイナリを作ることができるようです。 Embulkの開発環境 @h_michael_z 今のところ7でコンパイルしてますね — FURUHASHI Sadayuki (@frsyuki) 2015, 7月 24 JDK8で作ったプラグインをJava7上で動かした場合 私が作った、embulk-parser-apache-logはJava8上で作っていました。 これを、Java7(OpenJDK1.7)で動してみます。 OpenJDK Runtime E
Embulk組み込みプラグインの設定覚え書き その他の情報はFluentdのバッチ版Embulkのまとめをご覧ください。 Embulkには組み込みでいくつかのプラグインが用意されています。この資料ではEmbukの基本的な概念を説明したのち、組み込みのプラグインについて解説をおこないます。 詳細は、オフィシャルのマニュアルを参照してください。Configuration (英語) 1, レコード、カラム、そして型 Embulkは、内部でデータをレコードとして取り扱いします。 レコードは、複数のカラムから構成されるデータ1件のことを表します。 例えば住所録では、人1名の情報がレコードです。1名の情報には、氏名や 年齢といったその人固有の情報があります。この固有の情報一つ一つが カラムです。それぞれのカラムには型があります。姓や名であれば文字列、 年齢であれば数字(整数)、生年月日であれば日付(日
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ってなに?、どんなプラグインがあるの?、どうやって独
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く