.. ################################################################################ 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. ################################################################################ ================ TableEnvironment ================ A table environment is the base class, entry point, and central context for creating Table and SQL API programs. EnvironmentSettings ------------------- Defines all parameters that initialize a table environment. Those parameters are used only during instantiation of a :class:`~pyflink.table.TableEnvironment` and cannot be changed afterwards. Example: :: >>> EnvironmentSettings.new_instance() \ ... .in_streaming_mode() \ ... .with_built_in_catalog_name("my_catalog") \ ... .with_built_in_database_name("my_database") \ ... .build() :func:`~EnvironmentSettings.in_streaming_mode` or :func:`~EnvironmentSettings.in_batch_mode` might be convenient as shortcuts. .. currentmodule:: pyflink.table.environment_settings .. autosummary:: :toctree: api/ EnvironmentSettings.new_instance EnvironmentSettings.from_configuration EnvironmentSettings.in_streaming_mode EnvironmentSettings.in_batch_mode EnvironmentSettings.get_built_in_catalog_name EnvironmentSettings.get_built_in_database_name EnvironmentSettings.is_streaming_mode EnvironmentSettings.to_configuration EnvironmentSettings.get_configuration EnvironmentSettings.Builder.with_configuration EnvironmentSettings.Builder.in_batch_mode EnvironmentSettings.Builder.in_streaming_mode EnvironmentSettings.Builder.with_built_in_catalog_name EnvironmentSettings.Builder.with_built_in_database_name EnvironmentSettings.Builder.build TableConfig ----------- Configuration for the current :class:`TableEnvironment` session to adjust Table & SQL API programs. This class is a pure API class that abstracts configuration from various sources. Currently, configuration can be set in any of the following layers (in the given order): - flink-conf.yaml - CLI parameters - :class:`~pyflink.datastream.StreamExecutionEnvironment` when bridging to DataStream API - :func:`~EnvironmentSettings.Builder.with_configuration` - :func:`~TableConfig.set` The latter two represent the application-specific part of the configuration. They initialize and directly modify :func:`~TableConfig.get_configuration`. Other layers represent the configuration of the execution context and are immutable. The getter :func:`~TableConfig.get` gives read-only access to the full configuration. However, application-specific configuration has precedence. Configuration of outer layers is used for defaults and fallbacks. The setter :func:`~TableConfig.set` will only affect application-specific configuration. For common or important configuration options, this class provides getters and setters methods with detailed inline documentation. For more advanced configuration, users can directly access the underlying key-value map via :func:`~pyflink.table.TableConfig.get_configuration`. Example: :: >>> table_config = t_env.get_config() >>> config = Configuration() >>> config.set_string("parallelism.default", "128") \ ... .set_string("pipeline.auto-watermark-interval", "800ms") \ ... .set_string("execution.checkpointing.interval", "30s") >>> table_config.add_configuration(config) .. note:: Because options are read at different point in time when performing operations, it is recommended to set configuration options early after instantiating a table environment. .. currentmodule:: pyflink.table.table_config .. autosummary:: :toctree: api/ TableConfig TableEnvironment ---------------- A table environment is the base class, entry point, and central context for creating Table and SQL API programs. It is unified for bounded and unbounded data processing. A table environment is responsible for: - Connecting to external systems. - Registering and retrieving :class:`~pyflink.table.Table` and other meta objects from a catalog. - Executing SQL statements. - Offering further configuration options. The path in methods such as :func:`create_temporary_view` should be a proper SQL identifier. The syntax is following [[catalog-name.]database-name.]object-name, where the catalog name and database are optional. For path resolution see :func:`use_catalog` and :func:`use_database`. All keywords or other special characters need to be escaped. Example: `cat.1`.`db`.`Table` resolves to an object named 'Table' (table is a reserved keyword, thus must be escaped) in a catalog named 'cat.1' and database named 'db'. .. note:: This environment is meant for pure table programs. If you would like to convert from or to other Flink APIs, it might be necessary to use one of the available language-specific table environments in the corresponding bridging modules. .. currentmodule:: pyflink.table.table_environment .. autosummary:: :toctree: api/ TableEnvironment.add_python_archive TableEnvironment.add_python_file TableEnvironment.create TableEnvironment.create_java_function TableEnvironment.create_java_temporary_function TableEnvironment.create_java_temporary_system_function TableEnvironment.create_statement_set TableEnvironment.create_table TableEnvironment.create_temporary_function TableEnvironment.create_temporary_system_function TableEnvironment.create_temporary_table TableEnvironment.create_temporary_view TableEnvironment.drop_function TableEnvironment.drop_temporary_function TableEnvironment.drop_temporary_system_function TableEnvironment.drop_temporary_table TableEnvironment.drop_temporary_view TableEnvironment.execute_sql TableEnvironment.explain_sql TableEnvironment.from_descriptor TableEnvironment.from_elements TableEnvironment.from_pandas TableEnvironment.from_path TableEnvironment.from_table_source TableEnvironment.get_catalog TableEnvironment.get_config TableEnvironment.get_current_catalog TableEnvironment.get_current_database TableEnvironment.list_catalogs TableEnvironment.list_databases TableEnvironment.list_full_modules TableEnvironment.list_functions TableEnvironment.list_modules TableEnvironment.list_tables TableEnvironment.list_temporary_tables TableEnvironment.list_temporary_views TableEnvironment.list_user_defined_functions TableEnvironment.list_views TableEnvironment.load_module TableEnvironment.register_catalog TableEnvironment.register_function TableEnvironment.register_java_function TableEnvironment.register_table TableEnvironment.register_table_sink TableEnvironment.register_table_source TableEnvironment.scan TableEnvironment.set_python_requirements TableEnvironment.sql_query TableEnvironment.unload_module TableEnvironment.use_catalog TableEnvironment.use_database TableEnvironment.use_modules StreamTableEnvironment ---------------------- .. currentmodule:: pyflink.table.table_environment .. autosummary:: :toctree: api/ StreamTableEnvironment.add_python_archive StreamTableEnvironment.add_python_file StreamTableEnvironment.create StreamTableEnvironment.create_java_function StreamTableEnvironment.create_java_temporary_function StreamTableEnvironment.create_java_temporary_system_function StreamTableEnvironment.create_statement_set StreamTableEnvironment.create_table StreamTableEnvironment.create_temporary_function StreamTableEnvironment.create_temporary_system_function StreamTableEnvironment.create_temporary_table StreamTableEnvironment.create_temporary_view StreamTableEnvironment.drop_function StreamTableEnvironment.drop_temporary_function StreamTableEnvironment.drop_temporary_system_function StreamTableEnvironment.drop_temporary_table StreamTableEnvironment.drop_temporary_view StreamTableEnvironment.execute_sql StreamTableEnvironment.explain_sql StreamTableEnvironment.from_descriptor StreamTableEnvironment.from_elements StreamTableEnvironment.from_pandas StreamTableEnvironment.from_path StreamTableEnvironment.from_table_source StreamTableEnvironment.from_data_stream StreamTableEnvironment.from_changelog_stream StreamTableEnvironment.get_catalog StreamTableEnvironment.get_config StreamTableEnvironment.get_current_catalog StreamTableEnvironment.get_current_database StreamTableEnvironment.list_catalogs StreamTableEnvironment.list_databases StreamTableEnvironment.list_full_modules StreamTableEnvironment.list_functions StreamTableEnvironment.list_modules StreamTableEnvironment.list_tables StreamTableEnvironment.list_temporary_tables StreamTableEnvironment.list_temporary_views StreamTableEnvironment.list_user_defined_functions StreamTableEnvironment.list_views StreamTableEnvironment.load_module StreamTableEnvironment.register_catalog StreamTableEnvironment.register_function StreamTableEnvironment.register_java_function StreamTableEnvironment.register_table StreamTableEnvironment.register_table_sink StreamTableEnvironment.register_table_source StreamTableEnvironment.scan StreamTableEnvironment.set_python_requirements StreamTableEnvironment.sql_query StreamTableEnvironment.to_data_stream StreamTableEnvironment.to_changelog_stream StreamTableEnvironment.to_append_stream StreamTableEnvironment.to_retract_stream StreamTableEnvironment.unload_module StreamTableEnvironment.use_catalog StreamTableEnvironment.use_database StreamTableEnvironment.use_modules