L'outil Kettle est un outil ETL (Extract, Transform, Load) open source qui peut aider les ingénieurs de données à extraire, transformer et charger des données. Kettle fournit non seulement une interface visuelle, mais utilise également des scripts JavaScript pour personnaliser le processus de traitement ETL. Par conséquent, cet article présentera le fonctionnement de l'outil Kettle à l'aide de JavaScript.
1. Introduction à l'outil Kettle
Kettle est un outil ETL basé sur Java qui prend en charge plusieurs sources de données et données cibles, y compris les bases de données relationnelles, les fichiers, les bases de données NoSQL, etc., et possède les fonctionnalités suivantes :
2. Comment utiliser le script JavaScript de l'outil Kettle
Pour utiliser le script JavaScript dans l'outil Kettle, vous devez suivre les étapes suivantes :
3. Utilisez des scripts JavaScript pour effectuer des opérations ETL de données
Le script JavaScript de Kettle est puissant et peut être utilisé pour mettre en œuvre des opérations de traitement ETL de données complexes. Ci-dessous, nous présenterons comment utiliser des scripts JavaScript pour effectuer des opérations ETL de données sous trois aspects : « extraction de données », « conversion de données » et « chargement de données ».
Lors de la mise en œuvre de l'extraction de données dans Kettle, vous pouvez utiliser des scripts JavaScript combinés à l'étape « Saisie de table » pour terminer. Les étapes spécifiques sont les suivantes :
1) Tout d'abord, créez une nouvelle transformation, ajoutez l'étape "Saisie Table", et connectez-la à une autre étape
2) Dans la fenêtre d'édition de l'étape "Saisie Table", sélectionnez ; l'option « SQL Statement Query », saisissez l'instruction SQL requise dans la zone de texte ci-dessous
3) Sélectionnez l'onglet « Business Intelligence », puis sélectionnez « JavaScript » pour écrire un script JavaScript dans la zone d'édition du script ; 4) Utiliser des variables et La méthode est la suivante :
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; }
1) Créez une nouvelle transformation et ajoutez-y une étape "Java Script" ou "JDBC" pour vous connecter à d'autres étapes
2) Ouvrez l'étape "Java Script" ou "JDBC" ; et sélectionnez "Paramètres". Les données source et cible sont définies dans les onglets.
3) Sélectionnez l'onglet "Business Intelligence", puis sélectionnez "JavaScript" et écrivez un script JavaScript dans la zone d'édition du script ;
4) Utilisez les variables et les méthodes dans le script pour implémenter la conversion des données, comme indiqué ci-dessous :
//获取连接 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();
Chargement des données
1) Créez une nouvelle transformation et ajoutez l'étape "Sortie de table" et l'étape "Insérer/Mettre à jour" pour vous connecter à d'autres étapes ;
2) Ouvrez l'étape "Sortie de table" et cliquez sur "Sortie du tableau" Les informations sur la source de données sont définies dans l'onglet.
3) Sélectionnez l'onglet "Business Intelligence", puis sélectionnez "JavaScript" et écrivez un script JavaScript dans la zone d'édition du script ;
4) Utilisez les variables et les méthodes dans le script pour charger les données, comme indiqué ci-dessous :
//往输出中添加数据 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; }
Résumé
Le script JavaScript de l'outil Kettle peut apporter aux développeurs des capacités de traitement ETL extrêmement flexibles et puissantes, et peut aider les développeurs à mettre en œuvre rapidement des tâches telles que l'extraction, la conversion et le chargement de données. Dans le travail réel, les développeurs n'ont besoin que d'écrire des scripts JavaScript qui leur conviennent pour les besoins spécifiques de traitement des données de l'entreprise, puis ils peuvent effectuer efficacement le travail ETL de données correspondant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!