タグ

embulkに関するtaro-maruのブックマーク (17)

  • Embulk-parser-pluginとかを開発した話 - Tech Blog

    はじめましてインターンの学生エンジニアな五段です。 弊社は最近収集されるデータをgoogleのBigQueryに入れるようになりました。 その時に各情報からBigQueryに入れると気に使ったミドルウェアであるEmbulk周りをお手伝いさせていただいた時に得た知見をまとめようと思います。 今回はRubyほぼ未経験な自分がRubyで開発したEmbulkparserの話です。 Embulkとは バルク処理に特化したデータ転送ミドルウェアです。プラグイン方式でデータ入力先からデータ先を豊富にあり万が一なかったとしても簡単に作ることができます。 BigQueryとは 2012年にGoogleからリリースされたカラム型データストアです。数テラ数ペタでも数秒でデータ抽出を行ってくれるサービスで、かなりの低価格で提供されています。 → BigQueryで150万円溶かした人の顔 今回作るもの データは普

    Embulk-parser-pluginとかを開発した話 - Tech Blog
  • embulk-parser-grokの紹介 - Qiita

    先日の Embulk Meetup Tokyo #2 で発表したembulk-parser-grokというプラグインが好評だったので、使い方を紹介したいと思います。 embulk-parser-grok Embulkを活用したログ管理システム embulk-parser-grok embulk-parser-grokは、Grokというライブラリを利用した汎用的なパーサライブラリです。 https://github.com/thekrakken/java-grok Grokはほぼ正規表現のようなものなのですが、パターンに名前をつけて再利用できるという大きなメリットを持っています。 社内ではこのプラグインを使って、各種アプリケーションログ、Apacheのアクセスログ、Javaのスレッドダンプ、GC Log、JMeterの出力などをパースしています。 汎用的に使えるのでとても重宝しています。 簡

    embulk-parser-grokの紹介 - Qiita
  • 複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(実践編) - 無印吉澤

    前回の準備編からの続きです。 基的には、準備編で用意したコードに、Rubyでパース処理を書き足すだけで、簡単に独自のparserプラグインを作れました。ただ、その際にいくつか調べた点や、自分で工夫した点があったのでご紹介します。何かの参考になれば幸いです。 今回のコード 今回書いたサンプルコードは、GitHubにアップロードしました。 muziyoshiz/embulk-parser-multiline-log-sample 中身はembulk new ruby-parserコマンドで生成したひな形の、ほとんどそのままで、編集したのはREADME.mdと、lib/embulk/parser/multiline-log-sample.rbのみです。今回は、手元にある特殊なログを解析する、というユースケースのため、guessの方は書きませんでした。 lib/embulk/parser/mul

    複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(実践編) - 無印吉澤
  • 複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(準備編) - 無印吉澤

    最近、仕事の関係で、1個のログが1行〜複数行からなる特殊なログを解析する必要があり、Rubyでパーサを書く機会がありました。 しかし、そういえばこのパース処理ってEmbulkを使えばより簡単に作れて、かつ機能追加(パース結果をデータベースに入れるとか)が可能になるんじゃないか、と思い、parserプラグインをRubyで開発する方法を調べてみました。 ちなみに、Fluentdのin_tailプラグインのmultilineで頑張って分析することも考えたのですが、先日のTreasure Data Tech Talkの懇親会で古橋さんに相談したところ、「パーサの処理が複雑なら、Embulkのparserプラグインを自分で書いたほうが楽ですよ」とアドバイスを頂いたので、今回はEmbulkで行くことにしました。 Embulkのインストール 動作環境 MacBook Pro (Retina, 15-in

    複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(準備編) - 無印吉澤
  • Embulkローカルファイル出力メモ(Hishidama's Embulk output-local-file Memo)

    S-JIS[2015-08-09/2021-12-19] 変更履歴 Embulk ローカルファイルの出力 Embulkのローカルファイル書き込みのメモ。 概要 ローカルファイルはデフォルトで(追加プラグイン無しで)出力できる。 ファイルの形式はフォーマッターで指定する。 圧縮して出力したい場合はエンコーダーを指定する。 ローカルファイル出力で出力されるカラム(項目)は、入力データの全カラムになる。 カラム名も入力時に付けられたカラム名が使用される。 カラム名を変えたり、カラムの並び順を変えたり、出力するカラムを選択したりしたい場合は、フィルターを使う。 csvファイルの例 config.yml: in: ~ out: type: file path_prefix: /tmp/example/result/store_info file_ext: csv formatter: type: c

  • Embulkを使って大量の謎ログを読み込ませる手順 - Qiita

    Embulkを使って大量の謎ログを読み込ませる手順 2015.3.16: @hiroysatoさんから教えていただいたnewコマンドをベースにした方法へ大幅に書き換え。 背景 セキュリティ関係のなんとかみたいな仕事をしていると、ある時急に数TBの謎のログを手渡されて「これ明日までになんか解析してみて」みたいなムチャぶりが飛んでくることがあります。このようなデータ分析では分析手法云々という前に、正規化してDBに取り込んだりする作業に相当の労力が必要になります。こういう事案に対していまどきなデータ転送ソフトウエアであるembulkを使うとだいぶ分析にとりかかれるまでの作業が楽になるのではないかと思ったので、一連の手順をまとめてみました。 前提条件 大きいサイズ(数GB〜数TB)のログデータを取り込みたい ログデータは1行1レコード形式のテキストで複数ファイルに分割されている ログの出力形式など

    Embulkを使って大量の謎ログを読み込ませる手順 - Qiita
  • Embulkの設定ファイルをLiquidに対応させて、環境変数を参照させる

    1月も中旬に入り、少し遅くなりましたが、明けましておめでとうございます。 私個人は新年早々、生もので当たるハメになりましたが、A-AUTO 50は元気ですので、今年もよろしくお願いいたします。 2016年の1回目は、前年末から引き続きEmbulkの話になります。 ただし、以前とは少し毛色が違い、特定のプラグインではなく、設定ファイル自体について書いていきます。 Embulkに限らず、システムを利用・運用するうえで、"環境の違い"という問題に遭遇することは少なくないと思います。 OSやアーキテクチャのように決められているものから、意図して設定している環境設定など、その種類はさまざまですが、多くの場合、問題が発生するたび、その環境に対応させるためにシステムの設定を変更することになります。 Embulkの場合も、読み込むデータの場所や、データの形式、またデータによってはアクセスの情報などを設定フ

  • fluentd x embulk x bigqueryで作るバッチ集計処理基盤

    @joker1007 メインのバッチ集計処理基盤として bigqueryを利用するために今取り組んでいること、 そしてそれを支えるfluentdとembulkの bigqueryプラグインの現状を解説します。 self.inspect @joker1007 Freelance (Ruby/Rails/JS/Redshift/Bigquery) パーフェクトRubyとかパーフェクトRailsとか 最近はアプリより基盤寄りの仕事が多い (株)Reproで仕事中 Repro Inc.の最新情報 - Wantedly Hireling Now 資料作成サボってて時間がやばくなってしまい、 業務時間使って資料作ってたので、 宣伝を入れるからってことで許してもらいました BQの利用背景 MySQLの限界 将来的にもデータ量は増え続ける 割とヘビーな集計処理がある できるだけ同時に算出したい 構成イメー

  • Embulkの設定ファイルをincludeで共有化する方法 - Qiita

    まとめ Embulkの設定ファイルの中で同じ設定をしている部分を別ファイルにすることができます。 別のファイルにする設定ファイルは、_テンプレート名.yml.liquidという名前にします。 別の設定ファイルは、設定ファイルと同じディレクトリが起点ディレクトリになります。 読み込む設定ファイルは、サブディレクトリを作ることはできますが、親ディレクトリを..を使って参照することはできません。(セキュリティに関する配慮) 読み込み時に変数を設定することもできます。 include先のファイル名にハイフンは使えません。(理由は調査中) 動機 Embulkを利用する頻度が増えてくる場合、次のような問題が生じます。 同じ設定内容を、複数のYAMLファイルに記述しなければいけない。 設定ファイルが肥大化して管理するのが大変だ この問題は、Embulkに搭載されているテンプレートエンジンLiquidの機

    Embulkの設定ファイルをincludeで共有化する方法 - Qiita
  • embulk mkbundle または embulk bundle の使い方 - Qiita

    embulk mkbundle および embulk run -b を使うと、embulk のプラグインを Gemfile/Gemfile.lock でバージョン管理できるようになる。その使い方。 [更新履歴] 2019/02/09 embulk >= 0.9.0 で gem 'embulk' が必要になったので注記 2015/11/06 mkbundle コマンドが生えたので記事を修正。v0.7.8 以降で有効 https://github.com/embulk/embulk/pull/334 https://github.com/embulk/embulk/pull/335 基の使い方 1. embulk mkbundle すると、Gemfile やプラグインの雛形(gem にせずに読み込みたいプラグイン)が作られる $ embulk mkbundle bundle_dir Crea

    embulk mkbundle または embulk bundle の使い方 - Qiita
  • Embulk-plugin-inputの作り方 - Qiita

    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-plugin-inputの作り方 - Qiita
  • [Embulk]データを加工するプラグインの開発とデバッグ | DevelopersIO

    はじめに 様々なファイルを取り込むのに便利なツールであるEmbulkですが、業務要件に合わせてデータを加工したいことはあるかと思います。今回はデータを加工するスクリプトをJRubyにて開発しデバッグしてみたので、その手順についてまとめてみたいと思います。 尚、今回はプラグインをgemとして公開する方法については取り上げておりません。予めご了承ください。 今回作成するプラグインについて 今回行う処理ですが 〜.csv.gzのファイルを読み込み、解凍する。中身はShift-JISのCSVファイルである。 解凍したファイルを読み込み、定義ファイルに記述されたカラムと、タイムスタンプを追記する。 上記で編集したデータを再び〜.csv.gzに圧縮して出力する。この時にUTF-8に変換し、タブ区切りにする。 という流れとなります。 このうち1.と3.は既に用意されているプラグインにて実現できるので、独

    [Embulk]データを加工するプラグインの開発とデバッグ | DevelopersIO
  • https://qiita.com/yuichi_komatsu/items/3aae65c362b2a57f6fbf

  • Embulk: Plugins

    Moved The list of Plugins by Category has been moved to https://plugins.embulk.org/.

  • embulk-input-gcsプラグインを作りました

    並列データ転送ツールEmbulkのプラグインであるembulk-input-gcsを作りました。 EmbulkのインプットソースとしてGoogle Cloud Storage(GCS)上のバケット/ファイルを指定できるものです。 embulk-output-gcsの方が断然需要が高いと思いますが、自分はembulk-output-bigqueryを作っている最中にいろんな場所から同じデータでテストできて地味に便利でした。 単純にファイルをダウンロードするだけであればGoogle公式のCLIであるgsutil等を使えば事足りますが、Embulkを使うとファイルのパース等も行えるのがポイントです。 Embulkのgzipデコーダ、CSVパーサ、embulk-output-mysqlと組み合わせて、GCSにアップロードされたgzip圧縮されたCSVからデータを取り込み別環境のMySQLサーバ上の

  • EmbulkのfilterプラグインをRubyで開発する話 - 無印吉澤

    Embulkにはfilterプラグインという仕組みがあり、これを自作することで、Embulkで入力およびパースした結果を色々と加工することができます。例えば、「すべてのログにホスト名を追加する」といった、ログの種類によらない共通処理を定義するのに向いた仕組みです。 ただ、いろいろ試してみた結果、以前の記事で取り上げたような特殊なログを処理する場合でも、 パース処理の中で、一度完成したらほとんど直す必要がない基的な部分 → parserプラグイン 試行錯誤しながら、何度か直す必要がある部分 → filterプラグイン と使い分けた方が、コードの見通しが良くなりました。個人的には、parserプラグインと同じくらいfilterプラグインも自作することが多そうなので、作り方をメモしておきます。 特定カラムに含まれる文字列を置換するfilterプラグイン 一例として、以下のようなCSVファイルを

    EmbulkのfilterプラグインをRubyで開発する話 - 無印吉澤
  • Embulkフィルターメモ(Hishidama's Embulk filter Memo)

    S-JIS[2015-08-09/2015-09-27] 変更履歴 Embulk フィルター Embulkのフィルターのメモ。 概要 Embulkでは、読み込んだデータを多少加工することが出来る。 これはフィルタープラグインで行う。 出力系のプラグインには、フィルターで加工された後のデータが渡される。 カラム名変更フィルター 入力時に付けられたカラム名を変更するには、「type: rename」のフィルターを使う。 例えば、idというカラム名をsample_id、accountをaccount_idに変更するには、以下の様に記述する。 config.yml: in: ~ filters: - type: rename columns: id: sample_id account: account_id out: type: stdout 実行例: $ embulk preview conf

  • 1