kettle通用插件
Через файл конфигурации в формате JSON можно разрабатывать собственные плагины. В файле конфигурации все данные могут быть представлены в виде переменных.
Разработка
mvn install:install-file -Dfile=./kettle-core-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-core -Dversion=6.1.0.1-196 -Dpackaging=jar
swt-6.1.0.1-196.jar
— это файл swt.jar
, который находится в каталоге libswt дистрибутива Kettle для Windows. Чтобы обеспечить единообразие, необходимо скопировать файл и переименовать его. Здесь в качестве примера используется версия 6.1.0.1–196:
mvn install:install-file -Dfile=./kettle-dbdialog-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-dbdialog -Dversion=6.1.0.1-196 -Dpackaging=jar mvn install:install-file -Dfile=./kettle-engine-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-engine -Dversion=6.1.0.1-196 -Dpackaging=jar mvn install:install-file -Dfile=./kettle-ui-swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=kettle-ui-swt -Dversion=6.1.0.1-196 -Dpackaging=jar mvn install:install-file -Dfile=./pentaho-metadata-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=pentaho-metadata -Dversion=6.1.0.1-196 -Dpackaging=jar mvn install:install-file -Dfile=./metastore-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=metastore -Dversion=6.1.0.1-196 -Dpackaging=jar mvn install:install-file -Dfile=./swt-6.1.0.1-196.jar -DgroupId=org.pentaho.di -DartifactId=swt -Dversion=6.1.0.1-196 -Dpackaging=jar
Использование существующих плагинов:
Пользовательские типы ввода: В настоящее время реализованы два типа пользовательских входных данных: из REST API и через SAX-парсер для Excel.
{
"inputType":"rest",
"url":"",
"method":"get",
"headers": {},
"useSSL": false,
"loginUser": "",
"loginPass": "",
"params": {},
"isUploadFile": false,
"files": ["D:/aa.txt","E:/c.jpg"],
"resultField":"result"
}
Здесь:
{
"inputType":"excel",
"filename":"",
"header":true,
"sheetNum": 0,
"outputFields":[
{"name":"col1", "type": "String"},
{"name":"col2", "type": "String"},
{"name":"col3", "type": "String"}
]
}
Здесь:
Вывод в JSON-файл: Поддерживается вывод данных в массив или объект JSON. Конфигурация по умолчанию выглядит следующим образом:
{
"outputType":"array",
"fileName":"your-json-filename.json",
"fieldName":"data",
"batchSize": 1000
}
Здесь:
[ ]}), когда outputType является объектом, это действует.
Поддерживает вывод в таблицы Hive типа textfile/orc/parquet, а также только вывод в соответствующие файлы формата hdfs без создания таблицы Hive. По умолчанию конфигурация следующая:
{
"hadoopUserName":"hive",
"hdfsUrls":"192.168.100.11:8020;192.168.100.12:8020",
"hdfsFileName":"/tmp/hiveload/aaa.orc",
"hiveDriver":"org.apache.hive.jdbc.HiveDriver",
"hiveUrl":"jdbc:hive2://192.168.100.11:10000/default",
"hiveUser":"hive",
"hivePassword":"hive",
"createTable":"true",
"tableType":"orc",
"hiveTable":"xuwl_orc",
"partitionField":[
{"name":"dt", "type":"string"}
],
"partitionValue":[
{"name":"dt", "value":"2019-12-04"}
],
"overwrite":"true",
"fieldSeparator":"\t",
"lineSeparator":"\n"
}
Здесь:
Данный плагин не содержит jar-файлы, связанные с Hadoop и Hive. Если они не были добавлены ранее, возможно появление ошибки. Необходимо добавить соответствующие jar-файлы в папку kettle/lib в зависимости от версии кластера. В основном это следующие файлы: hadoop-auth-2.6.0.jar, hadoop-common-2.6.0.jar, hadoop-hdfs-2.6.0.jar, hive-exec-2.1.0.jar, hive-jdbc-1.1.0-cdh5.10.0.jar, protobuf-java-2.5.0.jar, htrace-core4-4.0.1-incubating.jar, fastjson-1.2.7.jar, servlet-api-2.5.jar и другие. При необходимости можно добавить дополнительные файлы в зависимости от конкретной ошибки. Эти jar-файлы можно найти в плагине bigdata для Kettle или в установочном пакете для больших данных кластера. Здесь есть одна копия: https://yun.baidu.com/s/1zxnUL48ZiWWUnWLfknAx4g пароль: hetg.
Поддерживается чтение одного текстового файла из HDFS. Конфигурация по умолчанию:
{
"hdfsUrls":"10.6.1.19:8020;10.6.1.20:8020",
"fileName":"/tmp/aa.txt",
"fileType":"text",
"fieldSeparator":"\t",
"lineSeparator":"\n",
"outputFields":[
{"name":"id", "type":"Integer"},
{"name":"xm", "type": "String"},
{"name":"age", "type": "String"},
{"name":"title", "type": "String"}
]
}
Здесь:
Для этого плагина также требуются jar-файлы Hadoop.
Поддерживаются преобразования китайского языка (упрощённый и традиционный), преобразование китайских иероглифов в пиньинь, кодирование и декодирование base64, MD5, шифрование SHA256. Конфигурация:
{
"changeConfig": [
{"inputField": "field1", "changeType": "sc2tc", "outputField": "field2"},
{"inputField": "field3", "changeType": "hz2py", "outputField": "field4"}
]
}
Здесь inputField — поле, которое нужно преобразовать, outputField — новое имя поля после преобразования, оно может совпадать с inputField. changeType определяет тип преобразования:
Если у вас возникнут какие-либо проблемы во время разработки, вы можете обратиться за помощью в QQ-группу (195548102).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )