當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。