Submit Search
Ingest node scripting_deep_dive
0 likes
385 views
Hiroshi Yoshioka
第37回Elasticsearch勉強会の発表スライド。 「Ingest Node Scripting Deep Dive」
Data & Analytics
Read more
1 of 29
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
More Related Content
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
PDF
データ分析を支える技術 DWH再入門
Satoru Ishikawa
PDF
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
PDF
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
PDF
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
PDF
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
Amazon Web Services Korea
PDF
Elasticsearchのサジェスト機能を使った話
ktaro_w
PDF
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
データ分析を支える技術 DWH再入門
Satoru Ishikawa
Amazon Athena 初心者向けハンズオン
Amazon Web Services Japan
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
AWS Black Belt Online Seminar 2017 Amazon Kinesis
Amazon Web Services Japan
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
Amazon Web Services Korea
Elasticsearchのサジェスト機能を使った話
ktaro_w
DynamoDBの初心者に伝えたい初めて触るときの勘所
Ryo Sasaki
What's hot
(20)
PDF
PostgreSQLアーキテクチャ入門
Uptime Technologies LLC (JP)
PDF
Tune Up AWS Lambda
Keisuke Nishitani
PPTX
AWSで作る分析基盤
Yu Otsubo
PDF
ガチ(?)対決!OSSのジョブ管理ツール
賢 秋穂
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
PDF
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
PPTX
WiredTigerを詳しく説明
Tetsutaro Watanabe
PPTX
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
PDF
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
PDF
データ分析基盤、どう作る?システム設計のポイント、教えます - Developers.IO 2019 (20191101)
Yosuke Katsuki
PDF
Spring Cloud Data Flow の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
PPTX
地理分散DBについて
Kumazaki Hiroki
PDF
情報処理技術者のための技術士受験のすすめ
akimichi Yamada
PDF
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
PPTX
ASTERIA WARP運用Tips「RDB連携時のトラブルシューティング 」
ASTERIA User Group
PDF
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Yoshiyasu SAEKI
PDF
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
NTT DATA Technology & Innovation
PDF
Apache Kafka 0.11 の Exactly Once Semantics
Yoshiyasu SAEKI
PostgreSQLアーキテクチャ入門
Uptime Technologies LLC (JP)
Tune Up AWS Lambda
Keisuke Nishitani
AWSで作る分析基盤
Yu Otsubo
ガチ(?)対決!OSSのジョブ管理ツール
賢 秋穂
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
WiredTigerを詳しく説明
Tetsutaro Watanabe
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
データ分析基盤、どう作る?システム設計のポイント、教えます - Developers.IO 2019 (20191101)
Yosuke Katsuki
Spring Cloud Data Flow の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
地理分散DBについて
Kumazaki Hiroki
情報処理技術者のための技術士受験のすすめ
akimichi Yamada
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
ASTERIA WARP運用Tips「RDB連携時のトラブルシューティング 」
ASTERIA User Group
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Yoshiyasu SAEKI
MongoDB概要:金融業界でのMongoDB
ippei_suzuki
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
NTT DATA Technology & Innovation
Apache Kafka 0.11 の Exactly Once Semantics
Yoshiyasu SAEKI
Ad
Similar to Ingest node scripting_deep_dive
(16)
PDF
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
PDF
最新版Hadoopクラスタを運用して得られたもの
cyberagent
PPTX
StreamGraph
Altech Takeno
PDF
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
susumu tanaka
PPTX
StackStormを活用した運用自動化の実践
Shu Sugimoto
PDF
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
PDF
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Masahito Zembutsu
PDF
Hyperledger Fabric のプラットフォームおよびインフラ運用
LFDT Tokyo Meetup
PDF
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
PDF
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
PDF
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Yahoo!デベロッパーネットワーク
PPT
Flume
あしたのオープンソース研究所
PDF
elasticsearchソースコードを読みはじめてみた
furandon_pig
PDF
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
最新版Hadoopクラスタを運用して得られたもの
cyberagent
StreamGraph
Altech Takeno
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
susumu tanaka
StackStormを活用した運用自動化の実践
Shu Sugimoto
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Masahito Zembutsu
Hyperledger Fabric のプラットフォームおよびインフラ運用
LFDT Tokyo Meetup
インフラセキュリティブートキャンプ #seccamp
Masahiro NAKAYAMA
配布用Supervisordによるnode.jsの運用
yut148atgmaildotcom
Dataworks Summit 2017 SanJose StreamProcessing - Hadoop Source Code Reading #...
Yahoo!デベロッパーネットワーク
Flume
あしたのオープンソース研究所
elasticsearchソースコードを読みはじめてみた
furandon_pig
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
Ad
Recently uploaded
(9)
PDF
Qlik TECH TALK セミナー:What's New In Qlik ~ 2025年7月リリース最新機能のご紹介
QlikPresalesJapan
PDF
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
QY Research株式会社
PDF
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
h_yama2396
PDF
世界半導体用酸化ハフニウム市場のサプライチェーン解析:上流、下流、収益モデル分析2025-2031
2418867459
PDF
グローバルロープウェイ用スチールワイヤーロープ市場2025:主要企業のシェア、売上動向、競争戦略
yhresearch
PDF
口腔内スキャナー市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
snow326214
PDF
商用ウェブカメラ市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
snow326214
PDF
液体クラトム抽出物供給側分析:世界の生産能力・販売量・平均価格動向(2025-2031)
yhresearch
PDF
限外ろ過膜調査レポート:市場規模、シェア、産業分析データ、最新動向2025-2031 YH Research
2418867459
Qlik TECH TALK セミナー:What's New In Qlik ~ 2025年7月リリース最新機能のご紹介
QlikPresalesJapan
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
QY Research株式会社
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
h_yama2396
世界半導体用酸化ハフニウム市場のサプライチェーン解析:上流、下流、収益モデル分析2025-2031
2418867459
グローバルロープウェイ用スチールワイヤーロープ市場2025:主要企業のシェア、売上動向、競争戦略
yhresearch
口腔内スキャナー市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
snow326214
商用ウェブカメラ市場:世界の産業現状、競合分析、シェア、規模、動向2025-2031年の予測
snow326214
液体クラトム抽出物供給側分析:世界の生産能力・販売量・平均価格動向(2025-2031)
yhresearch
限外ろ過膜調査レポート:市場規模、シェア、産業分析データ、最新動向2025-2031 YH Research
2418867459
Ingest node scripting_deep_dive
1.
1Copyright © Acroquest
Technology Co., Ltd. All rights reserved. Ingest Node Scripting Deep Dive Acroquest Technology株式会社 Senior Consultant / Elastic Certified Engineer 吉岡 洋 @Hirosh_Yoshioka
2.
はじめに Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 1.今日話すこと ①Ingest Nodeの例外処理グッドプラクティス 2.今日話さないこと ①Ingest APIの解説
3.
目次 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 1.Ingest Nodeとは 2.例外処理 3.Circuit Breaker
4.
自己紹介 Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 1. Acroquest Technology株式会社 2. 吉岡 洋(@Hirosh_Yoshioka) 3. 業務 − Elastic Stackのコンサルティング全般 (全文検索/ログ分析/セキュリティ分析/可視化) 4. その他 − 世界初のElastic Certified Engineer − 日本初のElastic社認定コンサルタント − Elastic User Group Tokyo運営
5.
Acroquest Technology株式会社 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 1. 新横浜にあるITベンチャー ①Great Place To Work(R) Institute Japan実施 働きがいのある会社ランキング第1位(3回受賞) 2. 事業(データ活用ビジネス) ①Elastic Stack活用コンサルティングサービス – 検証/設計/構築/運用支援など – Elastic Certified Engineer:5名 ②IoTデータ分析プラットフォーム ③機械学習/AI
6.
1. Ingest Nodeとは Copyright
© Acroquest Technology Co., Ltd. All rights reserved.
7.
1-1. Ingest Nodeとは? Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 1. 特徴 ①Elasticsearchにドキュメントをインデクシングする際の 前処理として、様々なデータ加工を行う機能。 ②Ingest Nodeの役割を持ったノードで実行される。 2. メリット ①ローコード開発(各種Processor+Painless Script) ②加工処理のSimulationが可能(Simulate pipeline API) ③加工処理をスケール可能(複数台Ingest Node)
8.
1-2. Ingest Nodeの利用シーン Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 1. Logstashと異なり、既存データの加工が可能 2. データ保守で利用シーンが多い No 概要 利用API Logstashによる代替 1 新規投入データの加工 ・Index API ・Bulk API 可能 2 既存データの加工 ・フィールド追加や値の変更 ・Update By Query API 不可能 3 既存データの加工 ・マッピング構造の変更 ・Analyzer関連の変更 ・Reindex API 不可能
9.
1-3. Ingest Nodeで可能な加工処理 Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 1. Document操作 ①特定条件でDrop 2. フィールド操作 ①追加/削除/リネーム/値セット 3. Index名操作 ①日付を付与、投入先インデックスを変更 4. 文字列操作 ①CSV/JSONパース、文字列置換/正規表現抽出 ②大文字/小文字化
10.
1-3. Ingest Nodeで可能な加工処理 Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 5. 配列操作 ①Split/Append/Join/Sort 6. データ付与 ①GeoIP/Enrich 7. 教師あり機械学習モデルの推論 ①言語判定 ②回帰/分類 8. Painless Script ①例)文字列配列に対して正規表現で文字列を抽出する
11.
2. 例外処理 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved.
12.
2-1. エラー発生時の挙動 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 1. Processorでエラーが発生するとインデクシングはSkipされる ① 正しいデータ加工/デバッグのため、例外処理は重要 POST _ingest/pipeline/_simulate { "pipeline": { "processors": [{ "rename": { "field": "server_name", "target_field": "host.name" } }] }, "docs": [ { "_source":{ "xxx": "vega" } } ] } { "docs" : [{ "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "field [server_name] doesn't exist" } ], "type" : "illegal_argument_exception", "reason" : "field [server_name] doesn't exist" } }] } server_nameフィールドが存在しない
13.
2-2. 例外処理パターン Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 1. 代表的な5つの例外処理パターン No 概要 利用機能 1 各Processorを対象にエラーをCatchする (エラー発生時にリカバリする処理) on_failureパラメータ 2 Pipeline全体を対象にエラーをCatchする (想定外エラー発生時の処理) on_failureブロック 3 エラーが発生しても処理を継続する (例外をCatchして何もしない) ignore_failureパラメータ 4 Processorの実行条件を記述する (主にNullチェックで利用) ifパラメータ 5 Nullチェックを簡易化する (スクリプト記述量が減る) Null Safeオペレータ(?.)
14.
2-2. 例外処理パターン Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 2. Pipeline全体を対象にエラーをCatchする(on_failureブロック) "on_failure" : [{ "set" : { "field" : "error.message", "value" : "{{ _ingest.on_failure_message }}" }, "set" : { "field" : "_index", "value" : "error-index" } }] 想定外のエラーが発生した場合、 ①error.messageにエラー内容を設定 ②投入先をerror-indexに変更 ※https://www.elastic.co/guide/en/elasticsearch/reference/current/handling-failure-in-pipelines.html
15.
2-2. 例外処理パターン Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 4. Processorの実行条件を記述する(ifパラメータ) PUT _ingest/pipeline/remove_temp { "processors": [ { "remove": { "field": "temp" "if": "ctx.temp != null" } } ] } tempフィールドが存在する場合、 削除する ※https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-conditionals.html
16.
2-2. 例外処理パターン Copyright ©
Acroquest Technology Co., Ltd. All rights reserved. 5. Nullチェックを簡易化する(Null Safeオペレータ) PUT _ingest/pipeline/drop_guests_network { "processors": [ { "drop": { "if": "ctx.network?.name == 'Guest'" } } ] } network階層が存在しない場合、 左辺はnullを返す ※https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-conditional-nullcheck.html
17.
3. Circuit breaker Copyright
© Acroquest Technology Co., Ltd. All rights reserved.
18.
Ingest Nodeを実装して いざ、データを投入! Copyright ©
Acroquest Technology Co., Ltd. All rights reserved.
19.
データを投入すると Circuit Breakerが 発動してデータ登録失敗 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved.
20.
3-1. Script compilation
circuit breaker(~7.8) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1. すべてのスクリプト処理を1つの閾値で判定 2. スクリプトCompileは5分間に75回まで ①script.max_compilations_rate ②あまり上げ過ぎると、OOMEのリスクが高まる 3. スクリプトCacheは100(Compile結果が入る) ①script.cache.max_size ②Elastic Cloudでは変更不可 4. Ingest Nodeでスクリプトにカウントされるもの ①Pipeline Processor/Script Processor/ifパラメータ
21.
3-2. Circuit breaker対策 Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 1. Script ProcessorをStored Script(事前コンパイル)にする POST _ingest/pipeline/_simulate { "pipeline": { "processors": [ { "script": {"id": "double"} } ] }, "docs": [ { "_source":{"number": 33} } ] } POST _scripts/double/ { "script": { "lang": "painless", "source": "ctx.number2 = ctx.number * 2" } }
22.
3-2. Circuit breaker対策 Copyright
© Acroquest Technology Co., Ltd. All rights reserved. { "docs" : [ { "doc" : { "_index" : "_index", "_type" : "_doc", "_id" : "_id", "_source" : { "number" : 33, "number2" : 66 }, "_ingest" : { "timestamp" : "2020-08-25T17:57:16.391823Z" } } } ] }
23.
データを投入すると 再びCircuit Breakerが 発動してデータ登録失敗 Copyright ©
Acroquest Technology Co., Ltd. All rights reserved.
24.
Processor毎に 存在するifパラメータは Stored Scriptに 登録できない Copyright ©
Acroquest Technology Co., Ltd. All rights reserved.
25.
Elastic Stack 7.9で改善 Copyright
© Acroquest Technology Co., Ltd. All rights reserved.
26.
3-3. Script compilation
circuit breaker(7.9~) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1. Circuit breakerの設定はContext単位に設定可能 ①script.context.$CONTEXT.max_compilations_rate ②script.context.$CONTEXT.cache_max_size $CONTEXT Cache (デフォルト) Compile Rate (デフォルト) ingest 200 制限なし processor_conditional 200 制限なし aggs 100 75/5m bucket_aggregation 100 75/5m field 100 75/5m score 100 75/5m : : :
27.
3-4. Ingest Node
Pipelines(7.9~) Copyright © Acroquest Technology Co., Ltd. All rights reserved. Kibana UIで Ingest Nodeを 簡単に編集
28.
まとめ Copyright © Acroquest
Technology Co., Ltd. All rights reserved. 1. Ingest Nodeはローコード開発のデータ加工基盤 2. 5つの例外処理パターンを利用する 3. Ingest Nodeで多数のScriptを利用する場合は Circuit Breakerが発生しやすい 4. 解決策は以下 ①Stored Scriptを積極利用する ②Ver.7.9以上を利用する
29.
ご清聴ありがとうございました。 Evolve the Earth
with Emotion of Technology Copyright © Acroquest Technology Co., Ltd. All rights reserved.
Download