Skip to content

Commit 0516fb2

Browse files
sgomezvillamoryoonhyejin
authored andcommitted
feat(mssql): platform instance aspect for dataflow and datajob entities (datahub-project#12180)
1 parent 24ee398 commit 0516fb2

File tree

4 files changed

+574
-228
lines changed

4 files changed

+574
-228
lines changed

metadata-ingestion/src/datahub/ingestion/source/sql/mssql/job_models.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
from dataclasses import dataclass, field
22
from typing import Dict, List, Optional, Union
33

4-
from datahub.emitter.mce_builder import make_data_flow_urn, make_data_job_urn
4+
from datahub.emitter.mce_builder import (
5+
make_data_flow_urn,
6+
make_data_job_urn,
7+
make_data_platform_urn,
8+
make_dataplatform_instance_urn,
9+
)
510
from datahub.metadata.schema_classes import (
611
DataFlowInfoClass,
712
DataJobInfoClass,
813
DataJobInputOutputClass,
14+
DataPlatformInstanceClass,
915
)
1016

1117

@@ -204,6 +210,18 @@ def as_datajob_info_aspect(self) -> DataJobInfoClass:
204210
status=self.status,
205211
)
206212

213+
@property
214+
def as_maybe_platform_instance_aspect(self) -> Optional[DataPlatformInstanceClass]:
215+
if self.entity.flow.platform_instance:
216+
return DataPlatformInstanceClass(
217+
platform=make_data_platform_urn(self.entity.flow.orchestrator),
218+
instance=make_dataplatform_instance_urn(
219+
platform=self.entity.flow.orchestrator,
220+
instance=self.entity.flow.platform_instance,
221+
),
222+
)
223+
return None
224+
207225

208226
@dataclass
209227
class MSSQLDataFlow:
@@ -238,3 +256,14 @@ def as_dataflow_info_aspect(self) -> DataFlowInfoClass:
238256
customProperties=self.flow_properties,
239257
externalUrl=self.external_url,
240258
)
259+
260+
@property
261+
def as_maybe_platform_instance_aspect(self) -> Optional[DataPlatformInstanceClass]:
262+
if self.entity.platform_instance:
263+
return DataPlatformInstanceClass(
264+
platform=make_data_platform_urn(self.entity.orchestrator),
265+
instance=make_dataplatform_instance_urn(
266+
self.entity.orchestrator, self.entity.platform_instance
267+
),
268+
)
269+
return None

metadata-ingestion/src/datahub/ingestion/source/sql/mssql/source.py

+14
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,13 @@ def construct_job_workunits(
639639
aspect=data_job.as_datajob_info_aspect,
640640
).as_workunit()
641641

642+
data_platform_instance_aspect = data_job.as_maybe_platform_instance_aspect
643+
if data_platform_instance_aspect:
644+
yield MetadataChangeProposalWrapper(
645+
entityUrn=data_job.urn,
646+
aspect=data_platform_instance_aspect,
647+
).as_workunit()
648+
642649
if include_lineage:
643650
yield MetadataChangeProposalWrapper(
644651
entityUrn=data_job.urn,
@@ -654,6 +661,13 @@ def construct_flow_workunits(
654661
entityUrn=data_flow.urn,
655662
aspect=data_flow.as_dataflow_info_aspect,
656663
).as_workunit()
664+
665+
data_platform_instance_aspect = data_flow.as_maybe_platform_instance_aspect
666+
if data_platform_instance_aspect:
667+
yield MetadataChangeProposalWrapper(
668+
entityUrn=data_flow.urn,
669+
aspect=data_platform_instance_aspect,
670+
).as_workunit()
657671
# TODO: Add SubType when it appear
658672

659673
def get_inspectors(self) -> Iterable[Inspector]:

0 commit comments

Comments
 (0)