fix(ingestion/kafka-connect): update retrieval of database name in Debezium SQL Server (#8608)

This commit is contained in:
Adriano Vega Llobell 2023-08-24 11:19:04 +02:00 committed by GitHub
parent 43d48ddde4
commit d6a935e3ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -626,12 +626,17 @@ class MongoSourceConnector:
@dataclass
class DebeziumSourceConnector:
connector_manifest: ConnectorManifest
report: KafkaConnectSourceReport
def __init__(
self, connector_manifest: ConnectorManifest, config: KafkaConnectSourceConfig
self,
connector_manifest: ConnectorManifest,
config: KafkaConnectSourceConfig,
report: KafkaConnectSourceReport,
) -> None:
self.connector_manifest = connector_manifest
self.config = config
self.report = report
self._extract_lineages()
@dataclass
@ -683,10 +688,19 @@ class DebeziumSourceConnector:
database_name=connector_manifest.config.get("database.dbname"),
)
elif connector_class == "io.debezium.connector.sqlserver.SqlServerConnector":
database_name = connector_manifest.config.get(
"database.names"
) or connector_manifest.config.get("database.dbname")
if "," in str(database_name):
raise Exception(
f"Only one database is supported for Debezium's SQL Server connector. Found: {database_name}"
)
parser = self.DebeziumParser(
source_platform="mssql",
server_name=self.get_server_name(connector_manifest),
database_name=connector_manifest.config.get("database.dbname"),
database_name=database_name,
)
elif connector_class == "io.debezium.connector.db2.Db2Connector":
parser = self.DebeziumParser(
@ -707,6 +721,8 @@ class DebeziumSourceConnector:
def _extract_lineages(self):
lineages: List[KafkaConnectLineage] = list()
try:
parser = self.get_parser(self.connector_manifest)
source_platform = parser.source_platform
server_name = parser.server_name
@ -730,6 +746,12 @@ class DebeziumSourceConnector:
)
lineages.append(lineage)
self.connector_manifest.lineages = lineages
except Exception as e:
self.report.report_warning(
self.connector_manifest.name, f"Error resolving lineage: {e}"
)
return
@dataclass
@ -1061,7 +1083,9 @@ class KafkaConnectSource(StatefulIngestionSourceBase):
"io.debezium.connector"
):
connector_manifest = DebeziumSourceConnector(
connector_manifest=connector_manifest, config=self.config
connector_manifest=connector_manifest,
config=self.config,
report=self.report,
).connector_manifest
elif (
connector_manifest.config.get(CONNECTOR_CLASS, "")