blob: 931ca24e1bf6e50f3d7957d5566e3ee1a2107454 [file] [log] [blame]
.. ################################################################################
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
################################################################################
===========
Descriptors
===========
TableDescriptor
---------------
Describes a CatalogTable representing a source or sink.
TableDescriptor is a template for creating a CatalogTable instance. It closely resembles the
"CREATE TABLE" SQL DDL statement, containing schema, connector options, and other
characteristics. Since tables in Flink are typically backed by external systems, the
descriptor describes how a connector (and possibly its format) are configured.
This can be used to register a table in the Table API, see :func:`create_temporary_table` in
TableEnvironment.
.. currentmodule:: pyflink.table.table_descriptor
.. autosummary::
:toctree: api/
TableDescriptor.for_connector
TableDescriptor.get_schema
TableDescriptor.get_options
TableDescriptor.get_partition_keys
TableDescriptor.get_comment
TableDescriptor.Builder.schema
TableDescriptor.Builder.option
TableDescriptor.Builder.format
TableDescriptor.Builder.partitioned_by
TableDescriptor.Builder.comment
TableDescriptor.Builder.build
FormatDescriptor
----------------
Describes a Format and its options for use with :class:`~pyflink.table.TableDescriptor`.
Formats are responsible for encoding and decoding data in table connectors. Note that not
every connector has a format, while others may have multiple formats (e.g. the Kafka connector
has separate formats for keys and values). Common formats are "json", "csv", "avro", etc.
.. currentmodule:: pyflink.table.table_descriptor
.. autosummary::
:toctree: api/
FormatDescriptor.for_format
FormatDescriptor.get_format
FormatDescriptor.get_options
FormatDescriptor.Builder.option
FormatDescriptor.Builder.build
Schema
------
Schema of a table or view.
A schema represents the schema part of a {@code CREATE TABLE (schema) WITH (options)} DDL
statement in SQL. It defines columns of different kind, constraints, time attributes, and
watermark strategies. It is possible to reference objects (such as functions or types) across
different catalogs.
This class is used in the API and catalogs to define an unresolved schema that will be
translated to ResolvedSchema. Some methods of this class perform basic validation, however, the
main validation happens during the resolution. Thus, an unresolved schema can be incomplete and
might be enriched or merged with a different schema at a later stage.
Since an instance of this class is unresolved, it should not be directly persisted. The str()
shows only a summary of the contained objects.
.. currentmodule:: pyflink.table.schema
.. autosummary::
:toctree: api/
Schema.Builder.from_schema
Schema.Builder.from_row_data_type
Schema.Builder.from_fields
Schema.Builder.column
Schema.Builder.column_by_expression
Schema.Builder.column_by_metadata
Schema.Builder.watermark
Schema.Builder.primary_key
Schema.Builder.primary_key_named
Schema.Builder.build
TableSchema
-----------
A table schema that represents a table's structure with field names and data types.
.. currentmodule:: pyflink.table.table_schema
.. autosummary::
:toctree: api/
TableSchema.copy
TableSchema.get_field_data_types
TableSchema.get_field_data_type
TableSchema.get_field_count
TableSchema.get_field_names
TableSchema.get_field_name
TableSchema.to_row_data_type
TableSchema.Builder.field
TableSchema.Builder.build
ChangelogMode
-------------
The set of changes contained in a changelog.
.. currentmodule:: pyflink.table.changelog_mode
.. autosummary::
:toctree: api/
ChangelogMode.insert_only
ChangelogMode.upsert
ChangelogMode.all