Assert

Assert sink connector

Description

A flink sink plugin which can assert illegal data by user defined rules

Key Features

Options

Name
Type
Required
Default

rules

ConfigMap

yes

-

rules.field_rules

string

yes

-

rules.field_rules.field_name

string|ConfigMap

yes

-

rules.field_rules.field_type

string

no

-

rules.field_rules.field_value

ConfigList

no

-

rules.field_rules.field_value.rule_type

string

no

-

rules.field_rules.field_value.rule_value

numeric

no

-

rules.field_rules.field_value.equals_to

boolean|numeric|string|ConfigList|ConfigMap

no

-

rules.row_rules

string

yes

-

rules.row_rules.rule_type

string

no

-

rules.row_rules.rule_value

string

no

-

rules.catalog_table_rule

ConfigMap

no

-

rules.catalog_table_rule.primary_key_rule

ConfigMap

no

-

rules.catalog_table_rule.primary_key_rule.primary_key_name

string

no

-

rules.catalog_table_rule.primary_key_rule.primary_key_columns

ConfigList

no

-

rules.catalog_table_rule.constraint_key_rule

ConfigList

no

-

rules.catalog_table_rule.constraint_key_rule.constraint_key_name

string

no

-

rules.catalog_table_rule.constraint_key_rule.constraint_key_type

string

no

-

rules.catalog_table_rule.constraint_key_rule.constraint_key_columns

ConfigList

no

-

rules.catalog_table_rule.constraint_key_rule.constraint_key_columns.constraint_key_column_name

string

no

-

rules.catalog_table_rule.constraint_key_rule.constraint_key_columns.constraint_key_sort_type

string

no

-

rules.catalog_table_rule.column_rule

ConfigList

no

-

rules.catalog_table_rule.column_rule.name

string

no

-

rules.catalog_table_rule.column_rule.type

string

no

-

rules.catalog_table_rule.column_rule.column_length

int

no

-

rules.catalog_table_rule.column_rule.nullable

boolean

no

-

rules.catalog_table_rule.column_rule.default_value

string

no

-

rules.catalog_table_rule.column_rule.comment

comment

no

-

rules.table-names

ConfigList

no

-

common-options

no

-

rules [ConfigMap]

Rule definition of user's available data. Each rule represents one field validation or row num validation.

field_rules [ConfigList]

field rules for field validation

field_name [string]

field name(string)

field_type [string | ConfigMap]

Field type declarations should adhere to this guide.

field_value [ConfigList]

A list value rule define the data value validation

rule_type [string]

The following rules are supported for now

  • NOT_NULL value can't be null

  • NULL value can be null

  • MIN define the minimum value of data

  • MAX define the maximum value of data

  • MIN_LENGTH define the minimum string length of a string data

  • MAX_LENGTH define the maximum string length of a string data

  • MIN_ROW define the minimun number of rows

  • MAX_ROW define the maximum number of rows

rule_value [numeric]

The value related to rule type. When the rule_type is MIN, MAX, MIN_LENGTH, MAX_LENGTH, MIN_ROW or MAX_ROW, users need to assign a value to the rule_value.

equals_to [boolean | numeric | string | ConfigList | ConfigMap]

equals_to is used to compare whether the field value is equal to the configured expected value. You can assign values of all types to equals_to. These types are detailed here. For instance, if one field is a row with three fields, and the declaration of row type is {a = array<string>, b = map<string, decimal(30, 2)>, c={c_0 = int, b = string}}, users can assign the value [["a", "b"], { k0 = 9999.99, k1 = 111.11 }, [123, "abcd"]] to equals_to.

The way of defining field values is consistent with FakeSource.

equals_to cannot be applied to null type fields. However, users can use the rule type NULL for verification, such as {rule_type = NULL}.

catalog_table_rule [ConfigMap]

Used to assert the catalog table is same with the user defined table.

table-names [ConfigList]

Used to assert the table should be in the data.

common options

Sink plugin common parameters, please refer to Sink Common Options for details

Example

the whole config obey with hocon style

Here is a more complex example about equals_to. The example involves FakeSource. You may want to learn it, please read this document.

Last updated