Apache Hop Pipeline Transforms【持续完善中】

2023-10-31

Transforms

Abort(取消)

DESCRIPTION(描述)

一旦接收到输入数据,Abort转换就终止正在运行的管道。此转换的主要用例是在发生意外或不想要的情况时抛出错误。

例如,您可以使用此转换,以便在经过错误跳的x行流量后中止管道。

OPTIONS(选择项)

Option Description
Transform name
(转化名称)
Name of the transform.
转换的名称
Abort threshold
终端阈值
The threshold of number of rows after which to abort the pipeline. E.g. If threshold is 0, the abort transform will abort after seeing the first row. If threshold is 5, the abort transform will abort after seeing the sixth row.
终止管道的行数阈值。例:如果阈值为0,中止转换将在看到第一行后中止。如果阈值为5,则中止转换将在看到第6行后中止
Abort message
中断消息
The message to put in the log upon aborting. If not filled in a default message will be used.
中止时要放入日志中的消息。如果不填写,将使用默认消息
Always log
Always log the rows processed by the Abort transform. This allows the rows to be logged although the log level of the pipeline would normally not do it. This way you can always see in the log which rows caused the pipeline to abort.
始终记录由Abort转换处理的行。这允许记录行,尽管管道的日志级别通常不会这样做。通过这种方式,您总是可以在日志中看到哪些行导致管道中止

Add a checksum

Descripton

The Add a Checksum transform calculates checksums for one or more fields in the input stream and adds this to the output as a new field.

添加校验和转换计算输入流中一个或多个字段的校验和,并将其作为新字段添加到输出中。

Options

Option Description
Transform name
转换名称
Name of the transform. Note: This name has to be unique in a single pipeline.
Type
类型
需要计算的校验和的类型。这些是可用的类型:
CRC32: 32位循环冗余校验:http://en.wikipedia.org/wiki/Cyclic_redundancy_check
ADLER32:Mark Adler的校验和算法:http://en.wikipedia.org/wiki/Adler-32
MD5:消息摘要算法 5http://en.wikipedia.org/wiki/MD5
SHA-1: 安全哈希算法 1 :http://en.wikipedia.org/wiki/SHA-1
SHA-256: 安全哈希算法 2 :http://en.wikipedia.org/wiki/SHA-256
Result Type
结果类型
Some checksum types allow to set different result types: String, Hexadecimal and Binary
一些校验和类型允许设置不同的结果类型:字符串、十六进制和二进制
Result field
结果字段
The name of the result field containing the checksum
包含校验和的结果字段的名称
Fields used in the checksum
校验和中使用的字段
The names of the fields to include in the checksum calculation. Note: You can use the “Get Fields” button to insert all input fields from previous transforms.
要包括在校验和计算中的字段的名称。注意:您可以使用“获取字段”按钮插入以前转换中的所有输入字段。

Add Constants

Add Sequence

Description

The Add Sequence transform adds a sequence to the Hop stream. A sequence is an ever-changing integer value with a specific start and increment value.

“添加序列”转换将序列添加到跃点流。序列是具有特定起始值和增量值的不断变化的整数值。

You can either use a database sequence (if supported, e.g. Oracle, PostgreSQL) to determine the value of the sequence, or have it generated by Hop.

您可以使用数据库序列(如果支持,例如 Oracle、PostgreSQL)来确定序列的值,也可以由 hop 生成。

Hop-generated sequence values are unique when used in the same pipeline, and return to the same starting value each time you run the pipeline. Hop sequences are unique only when used in the same pipeline. Also, they are not stored, so the values start back at the same value every time the pipeline is launched.

跃点生成的序列值在同一管道中使用时是唯一的,并且每次运行管道时都会返回到相同的起始值。仅在同一管道中使用跃点序列时才是唯一的。此外,它们不会存储,因此每次启动管道时,这些值都会从相同的值开始。

Options

Option Description
Transform name
转换名称
The name of this transform as it appears in the pipeline workspace. This name must be unique within a single pipeline.
此转换在管道工作区中显示的名称。此名称在单个管道中必须是唯一的。
Name of value
值的名称
Name of the new sequence value that is added to the stream.
添加到流中的新序列值的名称。
Use DB to generate the sequence
使用数据库生成序列
Enable if you want the sequence to be driven by a database sequence, then set these parameters: Connection name, Schema name (optional), Sequence name.
如果您希望序列由数据库序列驱动,请启用,然后设置以下参数:连接名称、架构名称(可选)、序列名称。
Connection name
连接名称
The name of the connection on which the database sequence resides.
数据库序列所在的连接的名称。
Schema name (optional)
架构名称(可选)
The table’s schema name.
表的架构名称。
Sequence name
序列名称
The name of the database sequence.
数据库序列的名称。
Use a pipeline counter to generate the sequence
使用管道计数器生成序列
Enable if you want the sequence to be generated by Hop, then set these parameters: Counter name (optional), Start at, Increment by, Maximum value.
如果您希望序列由 Hop 生成,请启用,然后设置以下参数:计数器名称(可选)、起始于、递增依据、最大值。
Use counter to calculate sequence? 使用计数器计算序列
Counter name (optional)
计数器名称
If multiple transforms in a pipeline generate the same value name, this option enables you to specify the name of the counter to associate with. Avoids forcing unique sequencing across multiple steps.
如果管道中的多个转换生成相同的值名称,则此选项允许你指定要与之关联的计数器的名称。避免跨多个步骤强制进行唯一排序。
Start at
开始于
The value to begin the sequence with.
序列开头的值。
Increment by
递增依据
The amount by which the sequence increases or decreases.
序列增加或减少的量。
Maximum value
最大值
The value after which the sequence returns to the Start At value.
序列返回到“起始位置”值的值。

Add value fields changing sequence

Add XML

Analytic Query(分析查询)

在这里插入图片描述

Description

The Analytic Query transform allows you to peek forward and backwards across rows in a pipeline.

分析查询转换允许您向前和向后查看管道中的行。

Examples of common use cases are:

常见用例的示例包括:

  • Calculate the “time between orders” by ordering rows by order date, and LAGing 1 row back to get previous order time.
  • 通过按订单日期对行进行排序来计算“订单之间的时间”,然后向后拖取 1 行以获得之前的订单时间。
  • Calculate the “duration” of a web page view by LEADing 1 row ahead and determining how many seconds the user was on this page.
  • 通过提前 1 行并确定用户在此页面上停留的秒数来计算网页浏览的“持续时间”。

Options

Option Description
Transform name
转换名称
The name of this transform as it appears in the pipeline workspace.
此转换在管道工作区中显示的名称。
Group fields table
组字段表
Specify the fields you want to group. Click Get Fields to add all fields from the input stream(s). The transform will do no additional sorting, so in addition to the grouping identified (for example CUSTOMER_ID) here you must also have the data sorted (for example ORDER_DATE).
指定要分组的字段。单击获取字段以添加输入流中的所有字段。转换不会执行其他排序,因此除了标识的分组(例如 CUSTOMER_ID)之外,您还必须对数据进行排序(例如ORDER_DATE)。
Analytic Functions table
“分析函数”表
Specify the analytic functions to be solved.
指定要求解的分析函数。
New Field Name
新字段名称
the name you want this new field to be named on the stream (for example PREV_ORDER_DATE)
您希望在流中命名此新字段的名称(例如 PREV_ORDER_DATE)
Subject
主题
The existing field to grab (for example ORDER_DATE)
要抓取的现有字段(例如 ORDER_DATE)
Type
类型
Set the type of analytic function:
LEAD “N” rows FORWARD and get Subject
LAG “N” rows BACKWARD in get Subject
设置分析函数的类型:
前进 - 前进 N 行并获取主题的值
滞后 - 向后 N 行并获取主题的值
N The number of rows to offset (backwards or forwards)
要偏移的行数(向后或向前)

Group field example

While it is not mandatory to specify a group, it can be useful for certain cases. If you create a group (made up of one or more fields), then the “lead forward / lag backward” operations are made only within each group. For example, suppose you have this:

虽然指定组不是强制性的,但在某些情况下可能很有用。如果创建一个组(由一个或多个字段组成),则仅在每个组中执行“前进/滞后”操作。例如,假设您有以下内容:

X   , Y
--------
aaa , 1
aaa , 2
aaa , 3
bbb , 4
bbb , 5
bbb , 6

And you want to create a field named Z, with the Y value in the previous row.

并且您要创建一个名为 Z 的字段,其中 Y 值位于上一行。

If you only care about the Y field, you don’t need to group. And you will have the following result:

如果您只关心 Y 字段,则无需分组。您将得到以下结果:

X   , Y , Z
------------
aaa , 1 , <null>
aaa , 2 , 1
aaa , 3 , 2
bbb , 4 , 3
bbb , 5 , 4
bbb , 6 , 5

But if you don’t want to mix the values for aaa and bbb, you can group by the X field, and you will have this:

但是,如果您不想混合 aaa 和 bbb 的值,您可以按 X 字段分组,您将获得以下内容:

X   , Y , Z
------------
aaa , 1 , <null>
aaa , 2 , 1
aaa , 3 , 2
bbb , 4 , <null>
bbb , 5 , 4
bbb , 6 , 5

Thus, by grouping (provided the input is sorted according to your grouping), you can be assured that lead or lag operations will not return row values outside of the defined group.

因此,通过分组(前提是输入根据您的分组进行排序),您可以确保超前或滞后操作不会返回定义组之外的行值。

Apache Tika

Append Streams

在这里插入图片描述

Description

The Append Streams transform reads the data from two transforms, only processing the second stream after the first one is finished.

追加流转换从两个转换读取数据,仅在第一个转换完成后处理第二个流。

As always, the row layout for the input data coming from both transforms has to be identical: the same row lengths, the same data types, the same fields at the same field indexes in the row.

与往常一样,来自两个转换的输入数据的行布局必须相同:行长度相同、数据类型相同、行中相同字段索引处的相同字段。

Important: If you don’t care about the order in which the output rows occur, you can use any transform to create a union of 2 or more data streams.

重要提示:如果您不关心输出行的出现顺序,则可以使用任何转换来创建 2 个或更多数据流的联合。

Options

Option Description
Transform name
转换名称
Name of the transform. Note: This name has to be unique in a single pipeline.
转换的名称。注意:此名称在单个管道中必须是唯一的。
Head hop
头跳
The name of the transform from which will be read the first stream.
将从中读取第一个流的转换的名称。
Tail hop
尾跳
The name of the transform from which will be read the second stream.
将从中读取第二个流的转换的名称。

Metadata Injection Support

All fields of this transform support metadata injection.

此转换的所有字段都支持元数据注入。

Avro Decode

Avro Encode

Avro File Input

Azure Event Hubs Listener

Azure Event Hubs Writer

Beam BigQuery Input

Beam BigQuery Output

Beam GCP Pub/Sub : Publish

Beam GCP Pub/Sub : Subscribe

Beam Input

Beam Kafka Consume

Beam Kafka Produce

Beam Output

Beam Timestamp

Beam Window

Blocking transform(阻塞)

Description

The Blocking transform blocks all output until the very last row is received from the previous transform.

阻止转换会阻止所有输出,直到从上一个转换收到最后一行。

the transform blocks until it gets the last row. It does not block until the previous transform is finished 100% which is functionality found in the other transform Blocking until transforms finish.
转换会阻塞,直到它获得最后一行。在上一个转换完成 100% 之前,它不会阻塞,这是在另一个转换中找到的功能阻塞直到转换完成

At that point, the last row is sent to the next transform or the complete input is sent off to the next transform. Use the Blocking transform for triggering plugins, stored procedures, Java scripts, … or for synchronization purposes.

此时,最后一行将发送到下一个转换,或者将完整的输入发送到下一个转换。使用阻塞转换来触发插件、存储过程、Java 脚本…或用于同步目的。

Options

Option Description
Transform name
转换名称
Name of the transform; this name has to be unique in a single pipeline.
转换的名称;此名称在单个管道中必须是唯一的。
Pass all rows?
传递所有行?
Determines whether to pass one row or all rows
确定是传递一行还是传递所有行
Spool directory
临时文件目录
The directory in which the temporary files are stored if needed; the default is the standard temporary directory for the system
如果需要,存储临时文件的目录;默认值为系统的标准临时目录
Spool-file prefix
临时文件前缀
Choose a recognizable prefix to identify the files when they appear in the temp directory
选择一个可识别的前缀,以便在文件出现在临时目录中时对其进行标识
Cache size
缓存大小
The more rows you can store in memory, the faster the transform works
内存中可以存储的行越多,转换工作的速度就越快
Compress spool files?
是否压缩临时文件
Compresses temporary files when they are needed
在需要时压缩临时文件

Blocking until transforms finish(阻塞直到转换完成)

Description

This transform simply waits until all the transform copies that are specified in the dialog have finished.

此转换只是等待,直到对话框中指定的所有转换副本完成。

You can use it to avoid the natural concurrency (parallelism) that exists between pipeline transform copies.

可以使用它来避免管道转换副本之间存在的自然并发性(并行性)。

Options

Option Description
Transform name
转换名称
Name of the transform.
转换的名称。
Watch the following transforms
监控以下转换
Use this grid to specify the transforms to wait for.
使用此网格指定要等待的转换。
Get transforms
获取转换
Push this button to auto-fill the “Watch the following transforms” grid with all transforms available in the pipeline.
按此按钮可自动填充“监控以下转换”网格,其中包含管道中可用的所有转换。
Option Description
Transform name
转换名称
The name of the transform to wait for.
要等待的转换的名称。
CopyNr
The (0-based) copy number of the transform. If the named transform has an explicit setting for “Change number of copies to start”, and you want to wait for all copies to finish, you’ll need to enter one row in the grid for each copy, and use this column to specify which copy of the transform to wait for. For the default number of copies (1), the CopyNr is always 0.
转换的(从 0 开始)副本编号。如果命名转换具有“更改要开始的副本数”的显式设置,并且你想要等待所有副本完成,则需要在网格中为每个副本输入一行,并使用此列指定要等待的转换副本。对于默认副本数 (1),CopyNr 始终为 0。

Calculator(计算器)

description

The Calculator transform provides you with predefined functions that can be executed on input field values.

计算器转换为您提供了可对输入字段值执行的预定义函数。

*Note:* The execution speed of the Calculator is far better than the speed provided by custom scripts (JavaScript).

***注意:***计算器的执行速度远远优于自定义脚本(JavaScript)提供的速度。

In addition to the arguments (Field A, Field B and Field C) you must also specify the return type of the function. You can also choose to remove the field from the result (output) after all values are calculated; this is useful in cases where you use temporary values that don’t need to end up in your pipeline fields.

除了参数(字段 A、字段 B 和字段 C)之外,还必须指定函数的返回类型。您还可以选择在计算完所有值后从结果(输出)中删除该字段;这在使用不需要最终出现在管道字段中的临时值的情况下非常有用。

Options

Function Description
Set field to constant A
将字段设置为常量 A
Create a copy of field A
创建字段 A 的副本
A + B A plus B.
A - B A minus B.
A * B A multiplied by B.
A / B A divided by B.
A * A The square of A.
SQRT( A ) The square root of A.
100 * A / B Percentage of A in B.
A - ( A * B / 100 ) Subtract B% of A.
A + ( A * B / 100 ) Add B% to A.
A + B *C Add A and B times C.
SQRT( AA + BB ) Calculate ?(A2+B2).
ROUND( A ) Returns the closest Integer to the argument. The result is rounded to an Integer by adding 1/2, taking the floor of the result, and casting the result to type int. In other words, the result is equal to the value of the expression: floor (a + 0.5). In case you need the rounding method “Round half to even”, use the following method ROUND( A, B ) with no decimals (B=0).
ROUND( A, B ) Round A to the nearest even number with B decimals. The used rounding method is “Round half to even”, it is also called unbiased rounding, convergent rounding, statistician’s rounding, Dutch rounding, Gaussian rounding, odd-even rounding, bankers’ rounding or broken rounding, and is widely used in bookkeeping. This is the default rounding mode used in IEEE 754 computing functions and operators. In Germany it is often called “Mathematisches Runden”.
STDROUND( A ) Round A to the nearest integer. The used rounding method is “Round half away from zero”, it is also called standard or common rounding. In Germany it is known as “kaufmännische Rundung” (and defined in DIN 1333).
STDROUND( A, B ) Same rounding method used as in STDROUND (A) but with B decimals.
CEIL( A ) The ceiling function map a number to the smallest following integer.
FLOOR( A ) The floor function map a number to the largest previous integer.
NVL( A, B ) If A is not NULL, return A, else B. Note that sometimes your variable won’t be null but an empty string.
Date A + B days Add B days to Date field A. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with hours.
Year of date A Calculate the year of date A.
Month of date A Calculate number the month of date A.
Day of year of date A Calculate the day of year (1-365).
Day of month of date A Calculate the day of month (1-31).
Day of week of date A Calculate the day of week (1-7). 1 is Sunday, 2 is Monday, etc.
Week of year of date A Calculate the week of year (1-54).
ISO8601 Week of year of date A Calculate the week of the year ISO8601 style (1-53).
ISO8601 Year of date A Calculate the year ISO8601 style.
Byte to hex encode of string A Encode bytes in a string to a hexadecimal representation.
Hex encode of string A Encode a string in its own hexadecimal representation.
Char to hex encode of string A Encode characters in a string to a hexadecimal representation.
Hex decode of string A Decode a string from its hexadecimal representation (add a leading 0 when A is of odd length).
Checksum of a file A using CRC-32 Calculate the checksum of a file using CRC-32.
Checksum of a file A using Adler-32 Calculate the checksum of a file using Adler-32.
Checksum of a file A using MD5 Calculate the checksum of a file using MD5.
Checksum of a file A using SHA-1 Calculate the checksum of a file using SHA-1.
Levenshtein Distance (Source A and Target B) Calculates the Levenshtein Distance: http://en.wikipedia.org/wiki/Levenshtein_distance
Metaphone of A (Phonetics) Calculates the metaphone of A: http://en.wikipedia.org/wiki/Metaphone
Double metaphone of A Calculates the double metaphone of A: http://en.wikipedia.org/wiki/Double_Metaphone
Absolute value ABS(A) Calculates the Absolute value of A.
Remove time from a date A Removes time value of A. Note: Daylight Savings Time (DST) changes in Sao Paulo and some other parts of Brazil at midnight 0:00. This makes it impossible to set the time to 0:00 at the specific date, when the DST changes from 0:00 to 1:00 am. So, there is one date in one year in these regions where this function will fail with an “IllegalArgumentException: HOUR_OF_DAY: 0 → 1”. It is not an issue for Europe, the US and other regions where the time changes at 1:00 or 2:00 or 3:00 am.
Date A - Date B (in days) Calculates difference, in days, between A date field and B date field.
A + B + C A plus B plus C.
First letter of each word of a string A in capital Transforms the first letter of each word within a string.
UpperCase of a string A Transforms a string to uppercase.
LowerCase of a string A Transforms a string to lowercase.
Mask XML content from string A Escape XML content; replace characters with &values.
Protect (CDATA) XML content from string A Indicates an XML string is general character data, rather than non-character data or character data with a more specific, limited structure. The given string will be enclosed into <![CDATA[String]]>.
Remove CR from a string A Removes carriage returns from a string.
Remove LF from a string A Removes linefeeds from a string.
Remove CRLF from a string A Removes carriage returns/linefeeds from a string.
Remove TAB from a string A Removes tab characters from a string.
Return only digits from string A Outputs only digits (0-9) from a string.
Remove digits from string A Removes all digits (0-9) from a string.
Return the length of a string A Returns the length of the string.
Load file content in binary Loads the content of the given file (in field A) to a binary data type (e.g. pictures).
Add time B to date A Add the time to a date, returns date and time as one value.
Quarter of date A Returns the quarter (1 to 4) of the date.
variable substitution in string A Substitute variables within a string.
Unescape XML content Unescape XML content from the string.
Escape HTML content Escape HTML within the string.
Unescape HTML content Unescape HTML within the string.
Escape SQL content Escapes the characters in a String to be suitable to pass to an SQL query.
Date A - Date B (working days) Calculates the difference between Date field A and Date field B (only working days Mon-Fri).
Date A + B Months Add B months to Date field A. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with days.
Check if an XML file A is well formed Validates XML file input.
Check if an XML string A is well formed Validates XML string input.
Get encoding of file A Guess the best encoding (UTF-8) for the given file.
Dameraulevenshtein distance between String A and String B Calculates Dameraulevenshtein distance between strings: http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance
NeedlemanWunsch distance between String A and String B Calculates NeedlemanWunsch distance between strings: http://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm
Jaro similitude between String A and String B Returns the Jaro similarity coefficient between two strings.
JaroWinkler similitude between String A and String B Returns the Jaro similarity coefficient between two string: http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
SoundEx of String A Encodes a string into a Soundex value.
RefinedSoundEx of String A Retrieves the Refined Soundex code for a given string object
Date A + B Hours Add B hours to Date field. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with minutes.
Date A + B Minutes Add B minutes to Date field. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with seconds.
Date A - Date B (milliseconds) Subtract B milliseconds from Date field A
Date A - Date B (seconds) Subtract B seconds from Date field A. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with milliseconds.
Date A - Date B (minutes) Subtract B minutes from Date field A. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with seconds.
Date A - Date B (hours) Subtract B hours from Date field A. Note: Only integer values for B are supported. If you need non-integer calculations, please add a second calculation with minutes.
Hour of Day of Date A Extract the hour part of the given date
Minute of Hour of Date A Extract the minute part of the given date
Second of Hour of Date A Extract the second part of a given date

FAQ

Q: I made a pipeline using A/B in a calculator transform and it rounded wrong: the 2 input fields are integer but my result type was Number(6, 4) so I would expect the integers to be cast to Number before executing the division.

If I wanted to execute e.g. 28/222, I got 0.0 instead of 0.1261 which I expected. So it seems the result type is ignored. If I change the input types both to Number(6, 4) I get as result 0.12612612612612611 which still ignores the result type (4 places after the comma).

Why is this?

A: Length & Precision are just metadata pieces.

If you want to round to the specified precision, you should do this in another transform. However: please keep in mind that rounding double point precision values is futile anyway. A floating point number is stored as an approximation (it floats) so 0.1261 (your desired output) could (would probably) end up being stored as 0.126099999999 or 0.1261000000001 (Note: this is not the case for BigNumbers)

So in the end we round using BigDecimals once we store the numbers in the output table, but NOT during the pipeline. The same is true for the Text File Output transform. If you would have specified Integer as result type, the internal number format would have been retained, you would press “Get Fields” and it the required Integer type would be filled in. The required conversion would take place there and then.

In short: we convert to the required metadata type when we land the data somewhere, NOT BEFORE.

Q: How do the data types work internally?
A: You might notice that if you multiply an Integer and Number, the result is always rounded. That is because Calculator takes data type of the left hand size of the multiplication (A) as the driver for the calculation. As such, if you want more precision, you should put field B on the left hand side or change the data type to Number and all will be well.

Cassandra Input

Cassandra Output

Cassandra SSTable Output

Call DB procedure

Change file encoding

Check if file is locked

Check if webservice is available

Clone row(克隆行)

Description

The Clone Row transform creates copies (clones) of a row and outputs them directly after the original row to the next transforms.

克隆行转换创建行的副本(克隆),并将它们直接在原始行之后输出到下一个转换。

Options

Option Description
Transform name
转换名称
Name of the transform. Note: This name has to be unique in a single pipeline.
转换的名称。注意:此名称在单个管道中必须是唯一的。
Nr clones
Nr 克隆
The number of clones you want to add after the original row.
要在原始行之后添加的克隆数。
Nr clone in field
Nr clone field
Add clone flag
添加克隆标志
Check this option if you want to add a boolean field in the output indicating if the row is a clone or not.
如果要在输出中添加布尔字段,指示该行是否为克隆,请选中此选项。
N / false : this is not a cloned row, it’s the original row
N / false :这不是克隆的行,而是原始行
Y / true : this is a cloned row, a copy of the original row
Y / true:这是一个克隆的行,原始行的副本
Clone flag field
克隆标志字段
The name of the clone flag field
克隆标志字段的名称
Add clone num to
Clone num field

Closure(闭环,2.1版中叫closure generate)

description

The Closure transform allows you to generate a Reflexive Transitive Closure Table for the Mondrian OLAP engine. For more information on how a closure table can help Mondrian gain performance, go here Technically, this transform reads all input rows in memory and calculates all possible parent-child relationships. It attaches the distance (in levels) from parent to child.

闭包转换允许您为蒙德里安 OLAP 引擎生成自反传递闭包表。有关闭包表如何帮助 Mondrian 获得性能的更多信息,请转到此处 从技术上讲,此转换读取内存中的所有输入行并计算所有可能的父子关系。它附加从父级到子级的距离(以级别为单位)。

Options

Option Description
Transform name
转换名称
The name that uniquely identifies the transform.
唯一标识转换的名称。
Parent ID field
父 ID 字段
The field name that contains the parent ID of the parent-child relationship.
包含父子关系的父 ID 的字段名称。
Child ID field
子 ID 字段
The field name that contains the child ID of the parent-child relationship.
包含父子关系的子 ID 的字段名称。
Distance field name
距离字段名称(层级)
The name of the distance field that will be added to the output
将添加到输出的距离字段的名称
Root is zero
根为零
Check this box if the root of the parent-child tree is not empty (null) but zero (0)
如果父子树的根不为空 (null) 而是零 (0),请选中此框

Coalesce(合并)

在这里插入图片描述

description

The Coalesce transform lets you list multiple fields and returns the first non-null value.

合并转换允许您列出多个字段并返回第一个非空值。

Options

Option Description
Transform name
转换名称
Name of the transform. Note: This name has to be unique in a single pipeline.
转换的名称。注意:此名称在单个管道中必须是唯一的。
Considered empty string as null
将空字符串视为空字符串
The transform can consider empty string as null.
转换可以将空字符串视为 null。

Fields

|Fields|specify the name, type, and value in the form of a string. Then, specify the formats to convert the value into the chosen data type.

Name The result field name, can overwrite an existing one.
Type
类型
The formats to convert the value into the chosen data type.
将值转换为所选数据类型的格式。
Remove
删除
Remove input fields from the stream.
从流中删除输入字段。
Input fields
输入字段
The order of the input fields listed in the columns determines the order in which they are evaluated.
列中列出的输入字段的顺序决定了计算这些字段的顺序。

Column exists(列存在)

Description

The Column Exists transforms allows you to verify the existence of a specific column in a database table

描述“列存在”转换允许您验证数据库表中是否存在特定列。

Options

Option Description
Transform name
转换名称
Name of the transform; This name has to be unique in a single pipeline
转换的名称;此名称在单个管道中必须是唯一的
Connection
连接
The database connection to use
要使用的数据库连接
Schema name
架构名称
(optional) The schema name of the table of the column to check
(可选)要检查的列的表的架构名称
Table name
表名
The name of the table of the column to check
要检查的列的表的名称
Tablename in field?
字段中的表名?
Enable to read the name of the table in an input field
启用此选项可读取输入字段中的表名称
Tablename field
表名字段
Specify the fieldns containing parameters and the parameter type
指定包含参数的字段和参数类型
Columnname field
列名字段
The name of the column field in the input stream
输入流中列字段的名称
Result fieldname
结果字段名称
The name of the resulting boolean flag field
生成的布尔标志字段的名称

Combination lookup/update

Concat Fields

Copy rows to result

Credit card validator

CSV File Input(CSV文件输入)

description

The CSV File Input transform reads data from a delimited file.

CSV 文件输入转换从分隔文件中读取数据。

The CSV label for this transform is a misnomer because you can define whatever separator you want to use, such as pipes, tabs, and semicolons; you are not constrained to using commas. Internal processing allows this transform to process data quickly. Options for this transform are a subset of the Text File Input transform.

此转换的 CSV 标签用词不当,因为您可以定义要使用的任何分隔符,例如管道、制表符和分号;您不必使用逗号。内部处理允许此转换快速处理数据。此转换的选项是文本文件输入转换的子集。

This transform has fewer overall options than the general Text File Input transform, but it has a few advantages over it:

与常规文本文件输入转换相比,此转换的总体选项较少,但与它相比,它有一些优点:

  • NIO — Native system calls for reading the file means faster performance, but it is limited to only local files currently. No VFS support.
  • NIO — 本机系统调用读取文件意味着更快的性能,但目前仅限于本地文件。不支持
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Hop Pipeline Transforms【持续完善中】 的相关文章

  • 数据治理

    全球数据战略公司董事总经理Donna Burbank说 xff1a 人工智能只有建立在优质的数据基础上才能成功 xff0c 从而推动了数据治理的发展 Thomas C Redman博士说 xff1a 估计80 的人工智能 xff08 AI
  • 数据仓库建设及数据治理总结

    在谈数仓之前 先来看下面几个问题 数仓为什么要分层 用空间换时间 通过大量的预处理来提升应用系统的用户体验 效率 因此数据仓库会存在大量冗余的数据 不分层的话 如果源业务系统的业务规则发生变化将会影响整个数据清洗过程 工作量巨大 通过数据分
  • DolphinScheduler3.0.1(数据质量)

    DolphinScheduler3 0 1 数据质量 Refer 1 data quality jar包修改 1 配置文件修改 2 依赖不明确问题 3 scope多修改问题 2 实现方式 1 Spark提交 2 结构解析 1 图1 2 图2
  • 什么是数据仓库?数据仓库的特点与架构演进

    1 为什么需要数据仓库 在没有数仓之前我们做数据分析到报表展示 依赖的都是从业务数据库中取数据来做分析 业务数据库主要是为业务操作服务 虽然可以用于分析 但需要做很多额外的调整 会存在以下几个问题 表结构关联关系错综复杂 业务数据库通常是根
  • 主数据管理体系规划

    一个组织如果没有认识到管理数据和信息如同管理有形资产一样有着非常的地位 呢么它在新经理时代将无法生存 1 企业级主数据管控体系概览 1 1企业级主数据管控体系总体目标 在企业级数据管理系统支撑下 接入企业的各种系统 企业的客户关系管理 业务
  • 揭秘数据探查:引领企业数据治理质量提升,助力业务高速发展!

    在日常工作中 产品 运营 研发及数据分析师常常会发现 处理 加工和识别数据等数据处理工作往往会占用整个工作流程80 的时间 造成这种困境的原因 大致有三点 1 数据量大且混乱 数据质量参差不齐 2 整体概括信息缺乏 度量信息如最大值 最小值
  • Apache Hop Pipeline Transforms【持续完善中】

    Transforms Abort 取消 DESCRIPTION 描述 一旦接收到输入数据 Abort转换就终止正在运行的管道 此转换的主要用例是在发生意外或不想要的情况时抛出错误 例如 您可以使用此转换 以便在经过错误跳的x行流量后中止管道
  • 数据治理-DAMA元数据模块总结

    最近在看DAMA元数据模块做了如下的总结 供大家参考学习 1 什么是元数据 元数据的定义是关于数据的数据 它不仅仅包括了技术和业务流程 数据规则和约束 还包括逻辑数据结构和物理数据结构等 它描述的是数据本身 2 元数据的作用 元数据对于数据
  • 【ETL】常见的ETL工具(含开源及付费)一览和优劣势分析?

    一 Kettle Kettle 中文名称叫水壶 该项目的概念是把各种数据放到一个壶里 然后以一种指定的格式流出 Kettle是一款国外开源的ETL工具 纯java编写 可以在Window Linux Unix上运行 无需安装 数据抽取 高效
  • 数据治理之数据质量

    一 前言 之前我们介绍了数据资产治理类工具 数据资产管理产品架构规划设计思路 本期 我们来聊聊数据质量检测和监控的核心工具 DQC和SLA 二 基本概念 DQC 即Data Quality Control 数据质量检测 数据质量控制 一般我
  • 数据治理体系建设

    01 数据治理建设路径 1 业务数字化的目的是打造一体化的业务流 信息流与数据流 从企业整体经营管理的角度 战略制定及分解 领域业务目标制定 业务方案设计 业务需求识别 信息系统功能及数据库设计 数据汇聚及分析 业务目标监测及改善 这个过程
  • Apache Hop-使用介绍【持续完善中】

    文章目录 Pipelines 管道 Pipeline Editor 管道编辑器 TOOLBAR Create a Pipeline 创建管道 How pipelines work 管道如何工作 Concepts 概念 Create a pi
  • 数据驱动的数字化转型:从流程驱动到数据驱动

    以下文章来源于凯哥讲故事系列 作者凯哥 数字化时代已经到来 1996年的时候 Being Digital 的作者Negroponte就提出数字化生活的概念 而20年以后的今天 我们已经进入了数字化的生活 移动互联网 物联网 手机 各种社交媒
  • 24张架构图把数据治理核心内容讲透了

    前言 随着信息革命和信息化的飞速发展 计算机数据量的急剧增长 数据利用和管理的重要性与日俱增 数据逐渐在信息化这个大舞台上扮演着越来越重要的角色 数据治理是企业大数据基础 企业级数据平台助力企业数字化转型 在目前数字化转型大趋势的推动下 企
  • 数据整理——大数据治理的关键技术

    摘要 数据是政府 企业和机构的重要资源 数据治理关注数据资源有效利用的众多方面 如数据资产确权 数据管理 数据开放共享 数据隐私保护等 从数据管理的角度 探讨了数据治理中的一项关键技术 数据整理 介绍了以数据拥有者和直接使用者 行业用户 为
  • Apache Flink不止于计算,数仓架构或兴起新一轮变革

    2021 年初 在 InfoQ 编辑部策划的全年技术趋势展望中 我们提到大数据领域将加速拥抱 融合 或 一体化 演进的新方向 本质是为了降低大数据分析的技术复杂度和成本 同时满足对性能和易用性的更高要求 如今 我们看到流行的流处理引擎 Ap
  • DAP组件外部服务开发说明

    DAP数据分析平台主要是为了满足企业数据分析的需要而开发的一款产品 不同于一般的BI平台 DAP数据分析平台更侧重数据的聚合 平台预置有数据源注册 ODS注册与管理 数仓配置与数据聚合 从而实现企业业务数据的统一 构建企业统一的 标准的 完
  • 清华大学开源的chatGLM-6B部署实战

    Windows部署 win10 通过wsl部署 常见问题 torch cuda OutOfMemoryError CUDA out of memory 在Windows的系统环境变量中增加 变量名 PYTORCH CUDA ALLOC CO
  • 如何有效进行主数据治理

    在企业信息化建设不断推进 逐渐进行数字化转型的今天 几乎所有的企业都卷入到数据及其处理 数据收集 存储 检索 传输 分析和表示 的浪潮中 数据已成为重要生产要素和无形资产 针对主数据的全生命周期管理迫在眉睫 对企业而言 分散管理的数据由于不
  • 数字化转型数据中台解决方案:PPT全文50页,附下载

    关键词 数字化转型 数据中台解决方案 数字化转型对企业的意义 数字化转型的核心 数据中台技术架构 数据中台的作用和意义 一 数字化转型背景 1 互联网普及和信息技术突破 随着互联网的普及和信息技术的突破 企业迫切需要适应数字化时代的变革 数

随机推荐

  • 练习2-2 在不使用运算符&&或者

    1 for i 0 i lt lim 1 c getchar n c EOF i 2 s i c 3 4 5 while i lt lim 1 6 7 while c getchar EOF 8 9 while c getchar n 10
  • c语言基础总结之获取数组中元素最小值

    数组获取元素个数 sizeof ids sizeof int 需要根据字节的长度来计算个数 当然在java中直接 length来获取 c语言就是比较麻烦 毕竟java是封装语言 将繁杂的步骤分装好方便调用了 用随机数生成一个数组 写一个函数
  • Anaconda的安装与jupyter常用操作

    一 Anaconda的安装 关于Anaconda的在windows上的安装 我不做过多的赘述 大家可以参考博客 https ask hellobi com blog wangdawei 9786 这里 需要说明一下为什么选择Anaconda
  • 在虚拟机Docker安装MySQL8.0,Navicat连接数据库出错等踩过的坑

    Docker安装MySQL8 0 Navicat连接数据库 环境 虚拟机 CentOS 7 2 Docker 20 10 7 MySQL 8 0 27 安装MySQL 1 先创建两个MySQL使用文件夹 opt目录是Linux提供我们扩展的
  • 顺序表的定义和基本操作

    文章目录 顺序表的实现 静态分配 动态分配 顺序表的插入删除 顺序表的查找 总结 顺序表的实现 静态分配 include
  • 【C++入门】(拷贝)构造函数和析构函数

    1 构造函数和析构函数 1 构造函数 constructor 字面意思就是构造对象的函数 当我们定义类的对象时调用 可以帮我们完成对象的初始化 2 析构函数 destructor 可以看做是构造函数的逆过程 当销毁类的时候调用 做一些收尾的
  • 华为笔试面试机考

    学习目标 HJ2 计算某字符出现次数 学习内容 描述 写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字符串中该字符的出现次数 不区分大小写字母 数据范围 1 n 1000 输入描述 第一行输入一个由字母和数字
  • DevOps教程:DevOps 架构

    注 本文译自 https www javatpoint com devops architecture 为了交付应用程序 开发和运营都扮演着至关重要的角色 部署包括需求分析 设计 开发以及软件组件或框架的测试 运营包括软件的管理流程 服务和
  • Python中的“ @”

    一 介绍 这是Python装饰器的语法 使用 符号 表示将装饰器函数放在被装饰函数的上方 当调用被装饰函数时 实际上是调用了装饰器函数 装饰器函数可以在调用被装饰函数之前或之后执行一些额外的操作 funA 作为装饰器函数 def funA
  • 10. TypeScript 交叉类型

    TypeScript 交叉类型 1 交叉类型 Intersection Types 是将多个类型合并为一个类型 interface Person1 handsome string interface Person2 high string
  • 数据结构-redis数据结构-跳表skiplist

    这篇文章简单分享学习redis 6 0 数据结构 跳表skiplist redis中的有序数据集合 zset 有两种实现方式 跳表和压缩列表 我们今天学习下跳表的实现原理 学习新的知识 我们先从已掌握的知识入手 由浅入深 让我们先从普通链表
  • 学习SpringSecurity这一篇就够了

    目录 一 SpringSecurity 框架简介 1 1 概要 1 2 Spring Security到底能干什么 1 3 常用术语 1 4 历史 1 5 同款产品对比 1 6 模块划分 二 SpringSecurity 入门案例 2 1
  • 重置下验证信息_新商盟登录密码通过企业微信重置操作流程

    收录于话题 新商盟登录密码新增通过绑定企业微信重置 新商盟密码客户自主重置密码有两个途径 一 绑定邮箱 发送链接重置密码 二 绑定企业微信 发送验证码 即可重置密码 具体操作方法如下 一 在手机上找到企业微信软件打开 二 打开企业微信后 在
  • 预处理命令 条件编译

    目录 预处理命令 条件编译 1 if endif 2 ifdef endif 3 ifndef endif 预处理命令 源程序中以 开头的行称为预处理指令 预处理指令并不是C语言的语法成分 而是传给编译程序的指令 包括 宏定义 define
  • 【华为OD机试】数组去重和排序【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 给定一个乱序的数组 删除所有的重复元素 使得每个元素只出现一次 并且按照出现的次数从高到低进行排序 相同出现次数按照第一次出现顺序进行先后排序 输入描述 一个数组 输
  • C# 高速写日志

    感谢作者 https blog csdn net weixin 34023982 article details 85878486 2 解决方案 2 1 简单原理说明 使用列队先缓存到内存 然后我们一直有个线程再从列队中写到磁盘上 这样就可
  • 电磁兼容(EMC):关于接地,你了解多少?

    电路为什么会有多个地 浮地 单点接地和多点接地有什么不同 知乎 一 前言 在EMC的处理方法中 常用的办法就是接地 但是关于接地各位小伙伴们知道多少呢 下面由小编给大家一一道来 二 接地方式 接地可分为四类 浮地 单点接地 多点接地 混合接
  • 八股文(Web篇——网络通讯部分)第十二天

    日期 2022年8月6日 TCP 与 UDP 区别 了解 TCP Transmission Control Protocol 传输控制协议 是一种面向连接 连接导向 的 可靠的 基于 IP 的传输层协议 UDP 是 User Datagra
  • 重装 iTunes 错误代码 42401 解决办法

    手贱把itunes11更新到了itunes12 本来蛮好看的拟物itunes瞬间变成了浓浓的安卓风 于是卸载重装便会提示 安装某个必需的 itunes的组件 42401 本着爱折腾的心百度了一下 结果很多和我一样 但是没有人给出解决办法 于
  • Apache Hop Pipeline Transforms【持续完善中】

    Transforms Abort 取消 DESCRIPTION 描述 一旦接收到输入数据 Abort转换就终止正在运行的管道 此转换的主要用例是在发生意外或不想要的情况时抛出错误 例如 您可以使用此转换 以便在经过错误跳的x行流量后中止管道