flink-cdc-language-server
Version:
A LSP-based language server for Apache Flink CDC
124 lines (123 loc) • 5.61 kB
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"source": {
"type": "object",
"description": "**Data Source** is used to access metadata and read the changed data from external systems. \nA Data Source can read data from multiple tables simultaneously.",
"properties": {
"type": {
"type": "string",
"description": "The type of the source, such as mysql."
},
"name": {
"type": "string",
"description": "The name of the source, which is user-defined (a default value provided)."
}
},
"additionalProperties": true,
"required": ["type"]
},
"sink": {
"type": "object",
"description": "**Data Sink** is used to apply schema changes and write change data to external systems.\nA Data Sink can write to multiple tables simultaneously.",
"properties": {
"type": {
"type": "string",
"description": "The type of the sink, such as doris or starrocks."
},
"name": {
"type": "string",
"description": "The name of the sink, which is user-defined (a default value provided)."
}
},
"additionalProperties": true,
"required": ["type"]
},
"pipeline": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the pipeline, which will be submitted to the Flink cluster as the job name.",
"default": "Flink CDC Pipeline Job"
},
"schema.change.behavior": {
"type": "string",
"description": "Behavior for handling schema change events.",
"enum": ["EVOLVE", "TRY_EVOLVE", "IGNORE", "LENIENT", "EXCEPTION"],
"default": "LENIENT"
},
"local-time-zone": {
"type": "string",
"description": "The local time zone defines current session time zone id."
}
}
},
"route": {
"type": "array",
"description": "**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.",
"items": {
"type": "object",
"properties": {
"source-table": {
"type": "string",
"description": "Source table id, supports regular expressions."
},
"sink-table": {
"type": "string",
"description": "Sink table id, supports regular expressions."
},
"replace-symbol": {
"type": "string",
"description": "Special symbol in sink-table for pattern replacing, will be replaced by original table name."
},
"description": {
"type": "string",
"description": "Routing rule description(a default value provided)."
}
},
"required": ["source-table", "sink-table"]
}
},
"transform": {
"type": "array",
"description": "**Transform** module helps users delete and expand data columns based on the data columns in the table.\nWhat’s more, it also helps users filter some unnecessary data during the synchronization process.",
"items": {
"type": "object",
"properties": {
"source-table": {
"type": "string",
"description": "Source table id, supports regular expressions."
},
"projection": {
"type": "string",
"description": "Projection rule, supports syntax similar to the select clause in SQL."
},
"filter": {
"type": "string",
"description": "Filter rule, supports syntax similar to the where clause in SQL."
},
"primary-keys": {
"type": "string",
"description": "Sink table primary keys, separated by commas."
},
"partition-keys": {
"type": "string",
"description": "Sink table partition keys, separated by commas."
},
"table-options": {
"type": "string",
"description": "Used to the configure table creation statement when automatically creating tables."
},
"description": {
"type": "string",
"description": "Transform rule description."
}
},
"required": ["source-table"]
}
}
},
"required": ["source", "sink"]
}