--- title: Table Mixin slug: /sdk/python/api-reference/table-mixin --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L0") # module `table_mixin` Mixin class containing Table specific methods To be used by OpenMetadata class **Global Variables** --------------- - **LRU_CACHE_SIZE** --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L51") ## class `OMetaTableMixin` OpenMetadata API methods related to Tables. To be inherited by OpenMetadata --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L295") ### method `create_or_update_custom_metric` ```python create_or_update_custom_metric( custom_metric: CreateCustomMetricRequest, table_id: str ) → Table ``` Create or update custom metric. If custom metric name matches an existing one then it will be updated. **Args:** - `custom_metric` (CreateCustomMetricRequest): custom metric to be create or updated --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L210") ### method `create_or_update_table_profiler_config` ```python create_or_update_table_profiler_config( fqn: str, table_profiler_config: TableProfilerConfig ) → Optional[Table] ``` Update the profileSample property of a Table, given its FQN. :param fqn: Table FQN :param profile_sample: new profile sample to set :return: Updated table --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L282") ### method `get_latest_table_profile` ```python get_latest_table_profile(fqn: FullyQualifiedEntityName) → Optional[Table] ``` Get the latest profile data for a table **Args:** - `fqn` (str): table fully qualified name **Returns:** - `Optional[Table]`: OM table object --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L230") ### method `get_profile_data` ```python get_profile_data( fqn: str, start_ts: int, end_ts: int, limit=100, after=None, profile_type: Type[~T] = ) → EntityList[~T] ``` Get profile data **Args:** - `fqn` (str): fullyQualifiedName - `start_ts` (int): start timestamp - `end_ts` (int): end timestamp - `limit` (int, optional): limit of record to return. Defaults to 100. - `after` (_type_, optional): use for API pagination. Defaults to None. profile_type (Union[Type[TableProfile], Type[ColumnProfile]], optional): Profile type to retrieve. Defaults to TableProfile. **Raises:** - `TypeError`: if `profile_type` is not TableProfile or ColumnProfile **Returns:** - `EntityList`: EntityList list object --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L97") ### method `get_sample_data` ```python get_sample_data(table: Table) → Optional[Table] ``` GET call for the /sampleData endpoint for a given Table Returns a Table entity with TableData (sampleData informed) --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L130") ### method `ingest_profile_data` ```python ingest_profile_data( table: Table, profile_request: CreateTableProfileRequest ) → Table ``` PUT profile data for a table :param table: Table Entity to update :param table_profile: Profile data to add --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L145") ### method `ingest_table_data_model` ```python ingest_table_data_model(table: Table, data_model: DataModel) → Table ``` PUT data model for a table :param table: Table Entity to update :param data_model: Model to add --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L60") ### method `ingest_table_sample_data` ```python ingest_table_sample_data( table: Table, sample_data: TableData ) → Optional[TableData] ``` PUT sample data for a table :param table: Table Entity to update :param sample_data: Data to add --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L172") ### method `publish_frequently_joined_with` ```python publish_frequently_joined_with( table: Table, table_join_request: TableJoins ) → None ``` POST frequently joined with for a table :param table: Table Entity to update :param table_join_request: Join data to add --- [{% image align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square" /%}](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/table_mixin.py#L158") ### method `publish_table_usage` ```python publish_table_usage(table: Table, table_usage_request: UsageRequest) → None ``` POST usage details for a Table :param table: Table Entity to update :param table_usage_request: Usage data to add ---