in google-datacatalog-hive-connector/src/google/datacatalog_connectors/hive/prepare/datacatalog_entry_factory.py [0:0]
def make_entry_for_table(self, table_metadata, database_name):
entry_id = self.__make_entry_id_for_table(database_name,
table_metadata)
entry = datacatalog.Entry()
entry.user_specified_type = 'table'
entry.user_specified_system = 'hive'
entry.display_name = self._format_display_name(table_metadata.name)
entry.name = datacatalog.DataCatalogClient.entry_path(
self.__project_id, self.__location_id, self.__entry_group_id,
entry_id)
table_storage = table_metadata.table_storages[0]
entry.linked_resource = \
self._format_linked_resource(
'//{}//{}'.format(self.__metadata_host_server,
table_storage.location))
created_timestamp = timestamp_pb2.Timestamp()
created_timestamp.FromSeconds(table_metadata.create_time)
entry.source_system_timestamps.create_time = created_timestamp
update_time_seconds = \
DataCatalogEntryFactory. \
__extract_update_time_from_table_metadata(table_metadata)
if update_time_seconds is not None:
updated_timestamp = timestamp_pb2.Timestamp()
updated_timestamp.FromSeconds(update_time_seconds)
entry.source_system_timestamps.update_time = updated_timestamp
else:
entry.source_system_timestamps.update_time = created_timestamp
columns = []
for column in table_storage.columns:
columns.append(
datacatalog.ColumnSchema(
column=column.name,
type=DataCatalogEntryFactory.__format_entry_column_type(
column.type),
description=column.comment))
entry.schema.columns.extend(columns)
return entry_id, entry