Definition #
Route specifies the rule of matching a list of source-table and mapping to sink-table. The most typical scenario is the merge of sub-databases and sub-tables, routing multiple upstream source tables to the same sink table.
Parameters #
To describe a route, the follows are required:
parameter | meaning | optional/required |
---|---|---|
source-table | Source table id, supports regular expressions | required |
sink-table | Sink table id, supports symbol replacement | required |
replace-symbol | Special symbol in sink-table for pattern replacing, will be replaced by original table name | optional |
description | Routing rule description(a default value provided) | optional |
A route module can contain a list of source-table/sink-table rules.
Example #
Route one Data Source table to one Data Sink table #
if synchronize the table web_order
in the database mydb
to a Doris table ods_web_order
, we can use this yaml file to define this route:
route:
- source-table: mydb.web_order
sink-table: mydb.ods_web_order
description: sync table to one destination table with given prefix ods_
Route multiple Data Source tables to one Data Sink table #
What’s more, if you want to synchronize the sharding tables in the database mydb
to a Doris table ods_web_order
, we can use this yaml file to define this route:
route:
- source-table: mydb\.*
sink-table: mydb.ods_web_order
description: sync sharding tables to one destination table
Complex Route via combining route rules #
What’s more, if you want to specify many different mapping rules, we can use this yaml file to define this route:
route:
- source-table: mydb.orders
sink-table: ods_db.ods_orders
description: sync orders table to orders
- source-table: mydb.shipments
sink-table: ods_db.ods_shipments
description: sync shipments table to ods_shipments
- source-table: mydb.products
sink-table: ods_db.ods_products
description: sync products table to ods_products
Pattern Replacement in routing rules #
If you’d like to route source tables and rename them to sink tables with specific patterns, replace-symbol
could be used to resemble source table names like this:
route:
- source-table: source_db.\.*
sink-table: sink_db.<>
replace-symbol: <>
description: route all tables in source_db to sink_db
Then, all tables including source_db.XXX
will be routed to sink_db.XXX
without hassle.