当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyflink Table.execute_insert用法及代码示例


本文简要介绍 python 语言中 pyflink.table.Table.execute_insert 的用法。

用法:

execute_insert(table_path_or_descriptor: Union[str, pyflink.table.table_descriptor.TableDescriptor], overwrite: bool = False) → pyflink.table.table_result.TableResult

  1. 当target_path_or_descriptor 是故事路径时:

    Table写入到以指定名称注册的TableSink中,然后执行插入操作。有关路径解析算法,请参阅use_database()

    例子:

    >>> tab.execute_insert("sink")
  2. 当target_path_or_descriptor 是表说明符时:

    声明由给定 Table 对象定义的管道应写入通过给定 TableDescriptor 表示的表(由 DynamicTableSink 支持)。它执行插入操作。

    TableDescriptor 使用唯一标识符注册为内联(即匿名)临时目录表(请参阅 create_temporary_table() )。请注意,多次调用此方法(即使使用相同的说明符)也会导致注册多个接收器表。

    此方法允许声明一个Schema对于接收器说明符。声明类似于{@代码SQL 中的 CREATE TABLE} DDL 并允许:

    1. 使用自定义 DataType 覆盖自动派生列

    2. 在物理列旁边添加元数据列

    3. 声明一个主键

    可以声明没有物理/常规列的模式。在这种情况下,这些列将自动派生并隐式放置在模式声明的开头。

    例子:

    >>> schema = Schema.new_builder()
    ...      .column("f0", DataTypes.STRING())
    ...      .build()
    >>> table = table_env.from_descriptor(TableDescriptor.for_connector("datagen")
    ...      .schema(schema)
    ...      .build())
    >>> table.execute_insert(TableDescriptor.for_connector("blackhole")
    ...      .schema(schema)
    ...      .build())

    如果多个管道应将数据插入到一个或多个接收器表中作为单次执行的一部分,请使用 StatementSet (请参阅 create_statement_set() )。

    默认情况下,所有插入操作都是异步执行的。使用await()get_job_client()监视执行情况。

    注意

    表说明符的execute_insert(案例 2.)是从 flink 1.14.0 添加的。

参数:

  • table_path_or_descriptor- 注册路径TableSink或说明应插入数据的接收器表的说明符Table是写的。

  • overwrite- 指示插入是否应覆盖现有数据。

返回:

表结果。

版本 1.11.0 中的新函数。

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 pyflink.table.Table.execute_insert。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。