mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-28 09:13:58 +00:00
Databricks comments & view definitions in bulk (#10112)
* Add databricks comments * Add view definition * Add view definition
This commit is contained in:
parent
97747d9803
commit
1f11fdefb4
@ -35,9 +35,17 @@ from metadata.generated.schema.metadataIngestion.workflow import (
|
|||||||
from metadata.ingestion.api.source import InvalidSourceException
|
from metadata.ingestion.api.source import InvalidSourceException
|
||||||
from metadata.ingestion.source.connections import get_connection
|
from metadata.ingestion.source.connections import get_connection
|
||||||
from metadata.ingestion.source.database.common_db_source import CommonDbSourceService
|
from metadata.ingestion.source.database.common_db_source import CommonDbSourceService
|
||||||
|
from metadata.ingestion.source.database.databricks.queries import (
|
||||||
|
DATABRICKS_GET_TABLE_COMMENTS,
|
||||||
|
DATABRICKS_VIEW_DEFINITIONS,
|
||||||
|
)
|
||||||
from metadata.utils import fqn
|
from metadata.utils import fqn
|
||||||
from metadata.utils.filters import filter_by_database
|
from metadata.utils.filters import filter_by_database
|
||||||
from metadata.utils.logger import ingestion_logger
|
from metadata.utils.logger import ingestion_logger
|
||||||
|
from metadata.utils.sqlalchemy_utils import (
|
||||||
|
get_all_view_definitions,
|
||||||
|
get_view_definition_wrapper,
|
||||||
|
)
|
||||||
|
|
||||||
logger = ingestion_logger()
|
logger = ingestion_logger()
|
||||||
|
|
||||||
@ -167,9 +175,47 @@ def get_view_names(
|
|||||||
return views
|
return views
|
||||||
|
|
||||||
|
|
||||||
|
@reflection.cache
|
||||||
|
def get_table_comment( # pylint: disable=unused-argument
|
||||||
|
self, connection, table_name, schema_name, **kw
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Returns comment of table
|
||||||
|
"""
|
||||||
|
cursor = connection.execute(
|
||||||
|
DATABRICKS_GET_TABLE_COMMENTS.format(
|
||||||
|
schema_name=schema_name, table_name=table_name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
for result in list(cursor):
|
||||||
|
data = result.values()
|
||||||
|
if data[0] and data[0].strip() == "Comment":
|
||||||
|
return {"text": data[1] if data and data[1] else None}
|
||||||
|
except Exception:
|
||||||
|
return {"text": None}
|
||||||
|
return {"text": None}
|
||||||
|
|
||||||
|
|
||||||
|
@reflection.cache
|
||||||
|
def get_view_definition(
|
||||||
|
self, connection, table_name, schema=None, **kw # pylint: disable=unused-argument
|
||||||
|
):
|
||||||
|
return get_view_definition_wrapper(
|
||||||
|
self,
|
||||||
|
connection,
|
||||||
|
table_name=table_name,
|
||||||
|
schema=schema,
|
||||||
|
query=DATABRICKS_VIEW_DEFINITIONS,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DatabricksDialect.get_table_comment = get_table_comment
|
||||||
DatabricksDialect.get_view_names = get_view_names
|
DatabricksDialect.get_view_names = get_view_names
|
||||||
DatabricksDialect.get_columns = get_columns
|
DatabricksDialect.get_columns = get_columns
|
||||||
DatabricksDialect.get_schema_names = get_schema_names
|
DatabricksDialect.get_schema_names = get_schema_names
|
||||||
|
DatabricksDialect.get_view_definition = get_view_definition
|
||||||
|
DatabricksDialect.get_all_view_definitions = get_all_view_definitions
|
||||||
reflection.Inspector.get_schema_names = get_schema_names_reflection
|
reflection.Inspector.get_schema_names = get_schema_names_reflection
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
# Copyright 2021 Collate
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
"""
|
||||||
|
SQL Queries used during ingestion
|
||||||
|
"""
|
||||||
|
|
||||||
|
import textwrap
|
||||||
|
|
||||||
|
DATABRICKS_VIEW_DEFINITIONS = textwrap.dedent(
|
||||||
|
"""
|
||||||
|
select
|
||||||
|
TABLE_NAME as view_name,
|
||||||
|
TABLE_SCHEMA as schema,
|
||||||
|
VIEW_DEFINITION as view_def
|
||||||
|
from INFORMATION_SCHEMA.VIEWS WHERE VIEW_DEFINITION IS NOT NULL
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
DATABRICKS_GET_TABLE_COMMENTS = "DESCRIBE TABLE EXTENDED {schema_name}.{table_name}"
|
||||||
Loading…
x
Reference in New Issue
Block a user