ホームページ > ウェブフロントエンド > フロントエンドQ&A > JavaScript を使用した Kettle ツールの動作方法

JavaScript を使用した Kettle ツールの動作方法

PHPz
リリース: 2023-04-23 17:47:15
オリジナル
3470 人が閲覧しました

Kettle ツールは、データ エンジニアがデータの抽出、変換、読み込み、その他のタスクを実行するのに役立つオープンソース ETL (抽出、変換、読み込み) ツールです。 Kettle は、ビジュアル インターフェイスを提供するだけでなく、JavaScript スクリプトを使用して ETL 処理プロセスをカスタマイズします。そこで今回はJavaScriptを使ったKettleツールの動作について紹介します。

1. Kettle ツールの概要

Kettle は、リレーショナル データベース、ファイル、NoSQL データベースなどを含む複数のデータ ソースとターゲット データをサポートする Java ベースの ETL ツールです。以下の機能 機能:

  1. ビジュアル インターフェイス: ユーザーはインターフェイスを通じて、データ ソースの追加、ターゲット データの定義、E-T-L タスクの構築と実行などの操作を完了できます。
  2. ビッグ データのサポート: Kettle は、メモリ効率の高いテクノロジを使用して、大量のデータまたは高い同時実行性を処理するときに優れたパフォーマンスを実現します。
  3. データ品質検証: Kettle はデータ品質検証および監視機能を備えており、大規模なデータ検証を実行してデータの適時性と正確性を確保できます。
#2. Kettle ツールの JavaScript スクリプトの操作方法

Kettle ツールで JavaScript スクリプトを操作するには、次の手順に従う必要があります:

    Kettle ツールを開き、新しい変換またはジョブを作成します。
  1. 変換またはジョブを右クリックし、[編集]を選択して編集状態に入ります。
  2. 編集状態で、JavaScript スクリプトを追加するステップを選択し、右クリックして [ステップの編集] を選択します。
  3. ポップアップ ウィンドウで、[ビジネス インテリジェンス] タブを選択し、[JavaScript] を選択します。
  4. このウィンドウに JavaScript スクリプトを入力するだけです。スクリプトでは、Kettle ウィザードによっていくつかの一般的な変数とメソッドが開発者に提供されます。これらは直接呼び出したり、割り当てたりして、開発者の操作を簡素化できます。
3. JavaScript スクリプトを使用してデータ ETL 操作を完了する

Kettle の JavaScript スクリプトは強力で、複雑なデータ ETL 処理操作を実装するために使用できます。以下では、JavaScript スクリプトを使用してデータ ETL 操作を完了する方法を、「データ抽出」、「データ変換」、「データ読み込み」の 3 つの側面から紹介します。

    データ抽出
Kettle でデータ抽出を実装する場合、JavaScript スクリプトを「テーブル入力」ステップと組み合わせて使用​​して完了できます。具体的な手順は次のとおりです:

1) まず、新しい変換を作成し、「テーブル入力」ステップを追加して、それを別のステップに接続します;

2) の編集ウィンドウで「テーブル入力」ステップで、「SQL ステートメント クエリ」オプションを選択し、下のテキスト ボックスに必要な SQL ステートメントを入力します。

3) [ビジネス インテリジェンス] タブを選択し、[JavaScript] を選択して次のように記述します。スクリプト編集ボックスの JavaScript スクリプト;

4) スクリプト内で次のように変数とメソッドを使用します:

var row = getRow();
if(row) {
  //在这里输入需要抽取的字段名和数据类型
  var name = row.get("name");
  var age = row.getInteger("age");
  
  //在这里实现数据转换
  age = age * 2;
  
  //在这里输出结果
  var newRow = createRowCopy(row);
  newRow.setValue("new_age", age);
  putRow(newRow);  
} else {
  //表格输入到此结束,结束结果保存到日志中,并返回null终止此步骤。
  logBasic("表格输入完成");
  null;
}
ログイン後にコピー
    データ変換
データを実装する場合Kettle での変換。これは、「JavaScript」または「JDBC」ステップと組み合わせた JavaScript スクリプトを使用して実行できます。具体的な手順は次のとおりです:

1) 新しい変換を作成し、その中に「Java Script」または「JDBC」ステップを追加して、他のステップに接続します;

2) 「Java」を開きます。 「スクリプト」または「JDBC」ステップでは、「パラメータ」タブでデータ ソースとターゲット データを定義します。

3) [ビジネス インテリジェンス] タブを選択し、次に [JavaScript] を選択して、スクリプト編集ボックスに JavaScript スクリプトを記述します。

4) スクリプト内で変数とメソッドを使用してデータを取得します。以下に示すように、変換:

//获取连接
var con = getJDBCConnectionByName("dbConnection");

//查询数据
var rs = con.prepareStatement("SELECT * FROM customer").executeQuery();

//添加查询结果到输出
while(rs.next()) {
  var id = rs.getLong("id");
  var name = rs.getString("name");
  
  //在这里实现数据转换
  var transformedName = name.toUpperCase();   
  
  //在这里输出结果
  var newRow = createRowCopy(row);
  newRow.setValue("id", id);
  newRow.setValue("name", transformedName);
  putRow(newRow);  
}

//关闭连接
rs.close();
con.close();
ログイン後にコピー
    データ読み込み
Kettle にデータ読み込みを実装する場合、JavaScript スクリプトを使用して「テーブル出力」ステップと「挿入」ステップを組み合わせることができます。 /Update」の手順を完了します。具体的な手順は次のとおりです:

1) 新しい変換を作成し、「テーブル出力」ステップと「挿入/更新」ステップを追加して他のステップに接続します;

2) 開く「テーブル出力」ステップ」のステップでは、「テーブル出力」タブでデータソース情報を定義します。

3) [ビジネス インテリジェンス] タブを選択し、次に [JavaScript] を選択して、スクリプト編集ボックスに JavaScript スクリプトを作成します;

4) スクリプト内の変数とメソッドを使用してデータをロードします

//往输出中添加数据
var newRow = getDataRow();
newRow.setValue("name", "马化腾");
newRow.setValue("sex", "男");
newRow.setValue("age", 48);
addRowToOutput(newRow);

//往目标表添加数据
var row = getRow();
if(row) {
  //抽取需要的变量,形式如该脚本实例
  
  //查询表中是否已存在此行数据
  var sql = "SELECT * FROM customer WHERE id='" + id + "'";
  var rs = dbConnection.executeQuery(sql);

  if(rs.next()) {
     //如果存在,就执行更新操作
     var updateSql = "UPDATE customer SET name=?,age=? WHERE id=?";
     var pstmt = dbConnection.getConnection().prepareStatement(updateSql);
     pstmt.setString(1, transformedName);
     pstmt.setInt(2, age);
     pstmt.setLong(3, id);
     pstmt.executeUpdate();
     pstmt.close();
  } else {
     //如果不存在,执行插入操作
     var insertSql = "INSERT INTO customer(id, name, age) VALUES (?, ?, ?)";
     var pstmt = dbConnection.getConnection().prepareStatement(insertSql);
     pstmt.setLong(1, id);
     pstmt.setString(2, transformedName);
     pstmt.setInt(3, age);
     pstmt.executeUpdate();
     pstmt.close();
  }
} else {
  //表格输入到此结束,结束结果保存到日志中。
  logBasic("表格输出完成");
  null;
}
ログイン後にコピー
概要

Kettle ツールの JavaScript スクリプトは、開発者に非常に柔軟で強力な ETL 処理機能を提供し、開発者がデータを迅速に抽出して変換し、タスクを読み込むのに役立ちます。実際の作業では、開発者は特定のビジネス データ処理ニーズに適した JavaScript スクリプトを記述するだけで、対応するデータ ETL 作業を効率的に完了できます。

以上がJavaScript を使用した Kettle ツールの動作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート