详解User Defined Java Class步骤(一) kettle中的user defined java class步骤,也称UDJC步骤,从4.0版本就有,功能非常强大,无所不能;可以在其中写任意代码,却不影响效率。本文将详细介绍在不同场景中用示例展示如果使用该步骤,由于内容非常多,便于
详解User Defined Java Class步骤(一)
kettle中的“user defined java class”步骤,也称UDJC步骤,从4.0版本就有,功能非常强大,无所不能;可以在其中写任意代码,却不影响效率。本文将详细介绍在不同场景中用示例展示如果使用该步骤,由于内容非常多,便于阅读方便,把内容分成三部分,请完整看完全部内容,示例代码在这里下载.
UDJC步骤工作机制
用户定义java类是从org.pentaho.di.trans.steps.userdefinedjavaclass.TransformClassBase继承的;我们可以下载源码,看看该类的方法与属性,对我理解有帮助。
转换运行时,UDJC步骤的代码继承TransformClassBase并编译,该类是
一个通用步骤插件类,有一些便利的公共方法。我们自定义的代码可以根据实际情况覆盖或继承父类的方法或属性,也可以声明额外的方法或属性,并且还可以在代码的开始部分导入类的声明,默认以下类自动导入:
import org.pentaho.di.trans.steps.userdefinedjavaclass.*;
importorg.pentaho.di.trans.step.*;
importorg.pentaho.di.core.row.*;
import org.pentaho.di.core.*;
importorg.pentaho.di.core.exception.*;
如果你已经比较熟悉kettle的内部机制,并想通过代码方便地访问一些对象,点击udjc步骤属性左侧的代码片段,可以帮助我们更快的学习。
下面的章节展示udjc步骤在不同场景中如果使用:
简单的字段转换
第一个示例实现非常简单的操作:把一个字符串类型的字段转成大写。目的是说明如何设置步骤并处理行,以及如何访问输入和输出字段。如果你已经在开发kettle插件,这些对你来说就非常熟悉。假设行数据流中包含一个字段“testfield”,udjc中定义一个字符类型的输出字段“uppercase”。下面的代码实现把testfield转成大写并写到输出字段作为结果。
代码如下:
public boolean processRow(StepMetaInterfacesmi, StepDataInterface sdi) throws KettleException
{
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
if (first){
first = false;
}
r= createOutputRow(r, data.outputRowMeta.size());
// Get the value from an input field
String test_value = get(Fields.In, "testfield").getString(r);
// play around with it
String uppercase_value = test_value.toUpperCase();
// Set a value in a new output field
get(Fields.Out, "uppercase").setValue(r, uppercase_value);
// Send the row on to the next step.
putRow(data.outputRowMeta, r);
return true;
}
kettleudjc步骤调用processRow()方法去处理一个输入行,如果返回true,继续准备处理另一个输入行,如果没有数据处理,则返回false。
getRow()是阻塞调用的;它等待前一步骤提供一行数据,如有必要返回一个对象数组表示输入行,或null表明没再输入行需要处理。
接下来是简单的看似没有用的三行代码,涉及一个布尔类型的字段first(父类的字段),通过它可以方便的标识是否正在处理第一行数据,当有些工作仅仅需要执行一次,这比较有用。如果不使用,就可以忽略。
调用createOutputRow()确保行数组足够大,能够容纳增加的输出字段。
get()方法可以基于名称访问步骤的输入或输出字段,需要指明字段的类型(In、Out、Info)和字段的名称,返回org.pentaho.di.trans.steps.userdefinedjavaclass.FieldHelper类的实例,该对象可以访问字段的数据。在父类的定义如下:public FieldHelper get(Fields type, String name) throwsKettleStepException;
输出字段在行设置后,调用putRow()传输改行到可能的下一步骤。
这个简短的示例通过快速定制计算输入字段的相关内容,示例的转换是附件中的uppercase.ktr文件。
示例代码在这里下载,更多内容请看第二部分及第三部分。

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

Zu den Schritten zum Erstellen einer MySQL -Datenbank gehören: 1. Erstellen einer Datenbank und Tabelle, 2. Daten einfügen, und 3. Durchführen von Abfragen. Verwenden Sie zunächst die Anweisungen für erstellte und creatEtable, um die Datenbank und Tabelle zu erstellen, und verwenden Sie dann die Anweisung InsertInto, um die Daten einzulegen, und verwenden Sie schließlich die Auswahlanweisung, um die Daten abzufragen.

MySQL ist für Anfänger geeignet, da es einfach zu bedienen und leistungsfähig ist. 1.Mysql ist eine relationale Datenbank und verwendet SQL für CRUD -Operationen. 2. Es ist einfach zu installieren und erfordert, dass das Stammbenutzerkennwort konfiguriert wird. 3.. Verwenden Sie Einfügen, Aktualisieren, Löschen und Wählen Sie, um Datenvorgänge auszuführen. 4. OrderBy, wo und Join kann für komplexe Abfragen verwendet werden. 5. Debugging erfordert die Überprüfung der Syntax und verwenden Sie Erklärungen zur Analyse der Abfrage. 6. Die Optimierungsvorschläge umfassen die Verwendung von Indizes, die Auswahl des richtigen Datentyps und der guten Programmiergewohnheiten.

MySQL ist für Anfänger geeignet, weil: 1) Einfach zu installieren und konfigurieren, 2) Rich Learning Resources, 3) Intuitive SQL -Syntax, 4) leistungsstarke Toolunterstützung. Anfänger müssen jedoch Herausforderungen wie Datenbankdesign, Abfrageoptimierung, Sicherheitsmanagement und Datensicherung überwinden.

Ja, sqlisaprogrammingLuagespezialisierteForDatamanagement.1) Es ist dieklarativ, fokussierte Waagewhattoachieveratherthanhow.2)

Säureattribute umfassen Atomizität, Konsistenz, Isolation und Haltbarkeit und sind der Eckpfeiler des Datenbankdesigns. 1. Atomizität stellt sicher, dass die Transaktion entweder vollständig erfolgreich oder vollständig gescheitert ist. 2. Konsistenz stellt sicher, dass die Datenbank vor und nach einer Transaktion konsistent bleibt. 3. Isolation stellt sicher, dass sich Transaktionen nicht stören. 4. Persistenz stellt sicher, dass Daten nach der Transaktionsuntersuchung dauerhaft gespeichert werden.

MySQL ist nicht nur ein Datenbankverwaltungssystem (DBMS), sondern auch eng mit Programmiersprachen zusammen. 1) Als DBMS wird MySQL verwendet, um Daten zu speichern, zu organisieren und abzurufen und Indizes zu optimieren, können die Abfrageleistung verbessern. 2) Kombinieren Sie SQL mit Programmiersprachen, eingebettet in Python, und unter Verwendung von ORM -Tools wie SQLalchemy kann die Operationen vereinfachen. 3) Die Leistungsoptimierung umfasst Indexierung, Abfrage, Caching, Bibliothek und Tabellenabteilung und Transaktionsmanagement.

MySQL verwendet SQL -Befehle, um Daten zu verwalten. 1. Grundlegende Befehle umfassen Auswahl, Einfügen, Aktualisieren und Löschen. 2. Die erweiterte Verwendung umfasst die Funktionen, Unterabfragen und Aggregate. 3. Häufige Fehler sind Syntax-, Logik- und Leistungsprobleme. 4. Die Optimierungstipps umfassen die Verwendung von Indizes, die Vermeidung von Auswahl* und die Verwendung von Limit.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver Mac
Visuelle Webentwicklungstools