《Pentaho数据集成入门》(第一部分)-功能概述和术语整理
总结
本文介紹了以下內容。
-
- 機能概要(入門編としてPentaho Data Integrationでできることを整理)
- 用語整理(Pentaho Data Integrationの基本的な用語を整理)
功能概要 – 功能的总结 or 功能概述
我整理了Pentaho数据集成可以具体做什么。
基本的なETL機能
データ抽出
DB、ファイル(CSV/固定長/Excel/Json/XML等)、RestAPI、LDAP等へアクセスしデータを取得
特にDB(Table)からデータを取得する場合はSQLを使用することになるので、SQL上に変数を埋め込んで条件を変更しながらデータを取得することも可能、条件を作っておいてLoopさせてSQLを動的に発行しながら処理を行うとか)
S3上のファイルへ直接アクセスしデータを取得
ストリームデータ(JMS、Kafka、MQTT)の取得
Avro、Parquet、Cassandra、CouchDB、HBase、Mongoからのデータ取得や、HDFS上のファイルへの直接アクセス
GoogleAnalytics、Salesforce、SASのデータへの対応 ※使ったこと無いからどこまでできるのか不明
メールを受信してデータを取得(添付ファイルを取得して読み込むことも可能)
指定したフォルダ配下のファイルを正規表現で検索して読み込む(サブフォルダも含む)
システムデータ(システム日付、処理開始日、IPアドレス、ホスト名等いろいろ)
データ加工
文字列加工(substr、置換、Mapping、padding、Trim、結合)
シーケンスの追加や定数追加、NULL変換、データの正規化や非正規化、データソート
フィールド結合、フィールド分割、フィールド単位の文字コード変換
日付や時間の計算
集計などのグループ化処理(Sum、最大、最小、最初、最後、平均、中央、カウント等)
型変換
データフィルタやCaseによる実施処理の変更
データ結合(Join、Lookup等)
統計情報(標準偏差、最大、最小、中央値、平均値等)
データサンプリング
ファイルのエンコーディング
Excel関数のようなFunctionによる各種変換(IFなどもあるので条件による可変処理が可能)
スクリプト言語で好きな処理を実装可能(Javascript、Groovy、Jython、JRuby)
データロード
DB、ファイル(CSV/固定長/Excel/Json/XML等)、LDAP、データをロード
S3上へ直接ファイル出力
ストリームデータへの出力
Avro、Parquet、Cassandra、HBase、Mongo、HDFSへのファイル出力
ファイル添付してメール送信
JOBコントロール
各種処理の実行順を制御(処理に成功したらAの処理を実行、失敗したらBの処理を実行、指定した以降の処理を並列実行する、特定処理をLoopさせる等)
ファイルやフォルダの存在有無をチェック
Webサービスの死活チェック
DBへの接続チェックやTableの存在有無チェック
Pingによるサーバーの死活チェック
Pentaho単体でのスケジュール実行 ※Pentahoサーバーが必要
その他
エラーハンドリングやデータバリデーション(該当したエラーデータのみをファイル出力しておき、正常データのみをDBへロードする等が可能)
ファイル転送(FTP、SCP)やローカルでのファイルコピー、フォルダ作成などのファイル操作
同サーバー上のスクリプトファイルの実行
外部サーバー上のスクリプトを実行(ssh)
作成したETL処理の設定を外部から変更して動的に実行する機能(例えばCSVのフォーマットだけが違うが後続処理は同じことをしたい場合などに、実行するCSVファイルによって、外部からフォーマット情報を渡して動的に設定を変えるようなことが可能)
RestAPI経由でPentahoのJOBを実行する(単体でJOB実行することもできるし、Jsonとかで結果を戻すことも可能) ※Pentahoサーバーが必要
我只是随意写下了一些想法,但我认为市面上的批处理程序大致上都具备了所需的功能。
批处理程序可以使用Shell脚本或任何编程语言编写,但在能够让任何人都能够轻松实现所需处理的方面,ETL工具是卓越的。
由于Pentaho可以免费且没有特定限制地使用,所以在尝试ETL工具时是一个推荐的选择。
除了 Pentaho,还有一个著名的无偿可用 ETL 工具是 Talend,但我认为它们的内核基本相同。虽然我没有用过 Talend …
如果对 ETL 感兴趣的话,可以试试无偿可用的 Pentaho 或 Talend,选择对自己更易用的工具。
总之,在这个帐号中,我会详细介绍 Pentaho 的 ETL 使用方法等内容,希望能对您有所帮助。
整理词汇
我整理了使用Pentaho数据集成时需要了解的术语。
Pentaho
ペンタホと読みます
統合BIツールとして、レポーティング機能、OLAP機能、ダッシュボード機能、ETL機能などを持つ各OSSプロダクトを統合した製品です
Pentaho Data Integration
ペンタホデータインテグレーションと読みます
統合BIツールとしてのPentaho製品の中のETL機能の呼称です
頭文字をとってPDIと呼ばれることが多いですが、Kettleという呼び方もあります
PDIは、後述するSpoonやPan、Kitchenという機能を持っています
Spoon
PDIに含まれているETL処理をデザインするためのクライアントツールです
Spoon上で後述するTransformationやJOBを作成したり実行したりします
以下、Spoonを起動したところのイメージです
-
- Transformation
基本的なETL処理を行うための単位です
一つのTransformationの中で、データを抽出し、加工、ロードなどを完結させるイメージです
ただしTransformationの中から別のTransformationを呼び出したりすることもできるので使い方次第ではありますが、ETL処理を多段に組んでいくことも可能です
以下、TransformationをSpoon上で表示しているイメージです
-
- JOB
作成されたTransformationの処理順などの流れをコントロールする単位です
Transformationや別のJOBを呼び出すことが可能です
Transformation内で使用するファイルを別のサーバーからコピーしてきたり、Transformationを正常に実行するために事前に必要なファイルの存在チェックやDBの死活チェックなども実施することができます
処理がエラーになったらログを出力して、メールを送るなども可能です
以下、JOBをSpoon上で表示しているイメージです
Pan
Spoonで作ったTransformationをバッチ実行する際に使用するスクリプトでPDIに含まれています
Spoon上で実行する場合は実行ボタンを押す必要があるので、タスクスケジューラーとかに組み込む場合に使用します
Kitchen
Spoonで作ったJOBをバッチ実行する際に使用するスクリプトで、使い方はPanと同じです
Transformationを実行する場合はPanを、JOBを実行する場合はKitchenを使うという感じです
Pentaho BA Server (Pentahoサーバー)
Pentahoの統合BIツールとしてのレポート表示やユーザ管理、スケジューラー管理などを行う機能です
PDIとは別に提供されているので、使用する場合は別途インストールする必要があります
Pentahoサーバーはレポジトリ機能も持つので、PDIのSpoonからPentahoサーバーにつなぐと、Spoonで作成したTransformationやJOBをレポジトリ上に保存することが可能です
レポジトリ上で管理することでPentahoサーバー上のスケジューラー機能でETL処理をスケジュール実行することが可能となります
RestAPIの機能も提供してくれるので、レポジトリ上のETL処理やPentahoサーバーのファイルシステム上のETL処理を指定して実行することが可能になります
以下、Pentahoサーバーを起動してアクセスしたイメージです
如下:
使用规程
请参考以下内容了解Pentaho Data Integration的安装方式。
下次,我计划总结更具体的转换和任务的创建方法。
关于支持的事项
虽然使用OSS版可以免费使用,但我想也有些人希望能获得技术支持。
国内好像有以下途径可以提供支持,当然费用会产生。
如果需要,请尝试咨询。
KSK分析
日立