Example Configuration
Reconcile Config
Consider the below tables that we want to reconcile:
category | catalog | schema | table_name | schema | primary_key |
---|---|---|---|---|---|
source | source_catalog | source_schema | product_prod |
| p_id |
target | target_catalog | target_schema | product |
| product_id |
- Reconcile Config
- Aggregates Reconcile Config
note
Run with Drop,Join,Transformation,ColumnThresholds,Filter,JDBC ReaderOptions configs
{
"source_catalog": "source_catalog",
"source_schema": "source_schema",
"target_catalog": "target_catalog",
"target_schema": "target_schema",
"tables": [
{
"source_name": "product_prod",
"target_name": "product",
"jdbc_reader_options": {
"number_partitions": 10,
"partition_column": "p_id",
"lower_bound": "0",
"upper_bound": "10000000"
},
"join_columns": [
"p_id"
],
"drop_columns": [
"comment"
],
"column_mapping": [
{
"source_name": "p_id",
"target_name": "product_id"
},
{
"source_name": "p_name",
"target_name": "product_name"
}
],
"transformations": [
{
"column_name": "creation_date",
"source": "creation_date",
"target": "to_date(creation_date,'yyyy-mm-dd')"
}
],
"column_thresholds": [
{
"column_name": "price",
"upper_bound": "-50",
"lower_bound": "50",
"type": "float"
}
],
"table_thresholds": [
{
"lower_bound": "0%",
"upper_bound": "5%",
"model": "mismatch"
}
],
"filters": {
"source": "p_id > 0",
"target": "product_id > 0"
}
}
]
}
note
Aggregates-Reconcile run with Join, Column Mappings, Transformation, Filter and JDBC ReaderOptions configs Even though the user provides the `select_columns` and `drop_columns`, those are not considered.
{
"source_catalog": "source_catalog",
"source_schema": "source_schema",
"target_catalog": "target_catalog",
"target_schema": "target_schema",
"tables": [
{
"aggregates": [{
"type": "MIN",
"agg_columns": ["discount"],
"group_by_columns": ["p_id"]
},
{
"type": "AVG",
"agg_columns": ["discount"],
"group_by_columns": ["p_id"]
},
{
"type": "MAX",
"agg_columns": ["p_id"],
"group_by_columns": ["creation_date"]
},
{
"type": "MAX",
"agg_columns": ["p_name"]
},
{
"type": "SUM",
"agg_columns": ["p_id"]
},
{
"type": "MAX",
"agg_columns": ["creation_date"]
},
{
"type": "MAX",
"agg_columns": ["p_id"],
"group_by_columns": ["creation_date"]
}
],
"source_name": "product_prod",
"target_name": "product",
"jdbc_reader_options": {
"number_partitions": 10,
"partition_column": "p_id",
"lower_bound": "0",
"upper_bound": "10000000"
},
"join_columns": [
"p_id"
],
"drop_columns": [
"comment"
],
"column_mapping": [
{
"source_name": "p_id",
"target_name": "product_id"
},
{
"source_name": "p_name",
"target_name": "product_name"
}
],
"transformations": [
{
"column_name": "creation_date",
"source": "creation_date",
"target": "to_date(creation_date,'yyyy-mm-dd')"
}
],
"column_thresholds": [
{
"column_name": "price",
"upper_bound": "-50",
"lower_bound": "50",
"type": "float"
}
],
"table_thresholds": [
{
"lower_bound": "0%",
"upper_bound": "5%",
"model": "mismatch"
}
],
"filters": {
"source": "p_id > 0",
"target": "product_id > 0"
}
}
]
}