mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-26 09:22:14 +00:00
Added sql to tableau datamodels (#15197)
This commit is contained in:
parent
e72c80f264
commit
90b4933f96
@ -152,6 +152,23 @@ class TableauSource(DashboardServiceSource):
|
|||||||
include_tags=self.source_config.includeTags,
|
include_tags=self.source_config.includeTags,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _get_datamodel_sql_query(self, data_model: DataSource) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Method to fetch the custom sql query from the tableau datamodels
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
sql_queries = []
|
||||||
|
for table in data_model.upstreamTables or []:
|
||||||
|
for referenced_query in table.referencedByQueries or []:
|
||||||
|
sql_queries.append(referenced_query.query)
|
||||||
|
return "\n\n".join(sql_queries) or None
|
||||||
|
except Exception as exc:
|
||||||
|
logger.debug(traceback.format_exc())
|
||||||
|
logger.warning(
|
||||||
|
f"Error processing queries for datamodel [{data_model.id}]: {exc}"
|
||||||
|
)
|
||||||
|
return None
|
||||||
|
|
||||||
def yield_datamodel(
|
def yield_datamodel(
|
||||||
self, dashboard_details: TableauDashboard
|
self, dashboard_details: TableauDashboard
|
||||||
) -> Iterable[Either[CreateDashboardDataModelRequest]]:
|
) -> Iterable[Either[CreateDashboardDataModelRequest]]:
|
||||||
@ -171,6 +188,7 @@ class TableauSource(DashboardServiceSource):
|
|||||||
dataModelType=DataModelType.TableauDataModel.value,
|
dataModelType=DataModelType.TableauDataModel.value,
|
||||||
serviceType=DashboardServiceType.Tableau.value,
|
serviceType=DashboardServiceType.Tableau.value,
|
||||||
columns=self.get_column_info(data_model),
|
columns=self.get_column_info(data_model),
|
||||||
|
sql=self._get_datamodel_sql_query(data_model=data_model),
|
||||||
)
|
)
|
||||||
yield Either(right=data_model_request)
|
yield Either(right=data_model_request)
|
||||||
self.register_record_datamodel(datamodel_request=data_model_request)
|
self.register_record_datamodel(datamodel_request=data_model_request)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user