documents:etl:pentaho:pentaho-004
目次
ステップブロックとブロッキングステップ
2024-02-02
名前も似ているし曖昧に話をされているようにも見えたので混乱しないための備忘録
見つからない…
片方だけ日本語訳されてるので見つけられない人もいたりするかも。blockで検索すると出てくる。
ステップブロック
使い方としては独立したフロー間の同期を取るのに使うのが主目的だと思われる。
webの情報
検索で見つかる画像付きの情報 QiitaPentaho Data Integration Spoonステップ逆引きまとめ
使用例
このフローだと実行状況でファイル内容が変わる。テキストファイル出力の実行順序が不定のため、ID順にテキストを書き出せないし、同時書き込みが発生してファイルが壊れる事も。
定義 | 実行1回目 | 実行2回目 | 実行3回目 |
---|---|---|---|
ステップ「ステップブロック」で前提処理の終了を待ち合わせることができる。
定義 | ステップブロック | 結果 |
---|---|---|
| 繰り返し実行しても変わらない |
データグリッド・ファイル出力
入出力のステップの定義は以下。
データグリッド | テキストファイル出力 |
---|---|
| 追加書き 3も同じ。 |
ブロッキングステップ
ブロッキングステップの直前のステップが完全終了するまで(全てのレコードを送信し終えるまで)待ち合わせする(と説明にはある)
普通に利用していると使う事はまずないように思う。
Webの情報
デッドロックが発生している場合に使うらしい。検索するとこんな例が見つかる。 Transformation Deadlocks
使用例
以下処理は日本郵便株式会社の公開する全国郵便番号ファイルを使い、各都道府県の自治体数(市区町村数)を算出して47件のレコードを生成してからオリジナルの該当都道府県レコード124,365件に自治体数を付与する。
- デッドロック理由は、124,365件がステップ「行整列 2」と同じソートを行っていないため、ステップ「マージ結合」での結合キー不一致により47件のストリームとの結合不可なレコードが発生し、対応レコードの入力待ちになったため、と思われる。
- デッドロック解消理由は、124,365件側にステップ「ブロッキングステップ」を入れることで124,365件すべてに47件との突合せができるようになったため、と思われる。
デッドロック | |
---|---|
デッドロック解消 | ブロッキングステップ |
本来はブロッキングステップ不要
ただし、ほとんどの場合正しく作っていればデッドロックは起きない。ブロッキングステップ導入は本当に最後の手にしておくべきかと思う。
ちゃんと作ればブロッキングステップは要らない |
---|
documents/etl/pentaho/pentaho-004.txt · 最終更新: 2024/02/02 21:20 by k896951