Pentaho - 根据输入字段生成 UUID
Pentaho - Generate UUID based on input fields
有没有办法在 pentaho 步骤中使用输入字段生成 UUID?
示例:
Input: Name, Address.
Output: UUID = UUID(Name + Address)
您可以添加一个 user defined java class 并使用类似这样的代码:
String input = "Some name" + "Some address";
byte[] serialized = input.getBytes("UTF8");
UUID yourId = UUID.nameUUIDFromBytes(serialized);
这将根据您的给定输入生成确定性 UUID。
您可以使用添加 pentaho 数据集成的检查步骤,它将为字段组合创建一个唯一的代码。
UUID.nameUUIDFromBytes()
生成 MD5 UUID。 SHA1 优于 MD5。您可以使用 UuidCreator.getNameBasedSha1()
.
创建 SHA1 UUID
在这个例子中,变量 name
和 address
连接起来生成一个 SHA1 UUID:
// Create a name based UUID
String name = "localhost";
String address = "127.0.0.1";
UUID uuid = UuidCreator.getNameBasedSha1(name + address);
在另一个例子中,自定义名称 space 称为“网络”,与 name
和 address
一起使用:
// Create a custom namespace called 'network'
UUID namespace = UuidCreator.getNameBasedSha1("network");
// Create a name based UUID inside the 'network'
String name = "localhost";
String address = "127.0.0.1";
UUID uuid = UuidCreator.getNameBasedSha1(namespace, name + address);
有没有办法在 pentaho 步骤中使用输入字段生成 UUID?
示例:
Input: Name, Address.
Output: UUID = UUID(Name + Address)
您可以添加一个 user defined java class 并使用类似这样的代码:
String input = "Some name" + "Some address";
byte[] serialized = input.getBytes("UTF8");
UUID yourId = UUID.nameUUIDFromBytes(serialized);
这将根据您的给定输入生成确定性 UUID。
您可以使用添加 pentaho 数据集成的检查步骤,它将为字段组合创建一个唯一的代码。
UUID.nameUUIDFromBytes()
生成 MD5 UUID。 SHA1 优于 MD5。您可以使用 UuidCreator.getNameBasedSha1()
.
在这个例子中,变量 name
和 address
连接起来生成一个 SHA1 UUID:
// Create a name based UUID
String name = "localhost";
String address = "127.0.0.1";
UUID uuid = UuidCreator.getNameBasedSha1(name + address);
在另一个例子中,自定义名称 space 称为“网络”,与 name
和 address
一起使用:
// Create a custom namespace called 'network'
UUID namespace = UuidCreator.getNameBasedSha1("network");
// Create a name based UUID inside the 'network'
String name = "localhost";
String address = "127.0.0.1";
UUID uuid = UuidCreator.getNameBasedSha1(namespace, name + address);