可以说一下为什么你觉得输出结果应该是1,2,1,2吗?

个人觉得现在的输出结果应该没有问题。比如第1条数据,先发送到sink1,再发送到sink2,所以打印了2个1;然后处理第二条数据,打印了2个2

On Mon, Mar 8, 2021 at 9:42 AM 刘杰鸿 <wushang...@foxmail.com> wrote:

> from pyflink.table import EnvironmentSettings, StreamTableEnvironment
>
> env_settings =
> EnvironmentSettings.new_instance().in_streaming_mode().use_blink_planner().build()
> table_env =
> StreamTableEnvironment.create(environment_settings=env_settings)
>
> table = table_env.from_elements([(1, 'Hi'), (2, 'Hello')], ['id', 'data'])
> table_env.create_temporary_view("simple_source", table)
> table_env.execute_sql("""
>     CREATE TABLE first_sink_table (
>         id BIGINT,
>         data VARCHAR
>     ) WITH (
>         'connector' = 'print'
>     )
> """)
> table_env.execute_sql("""
>     CREATE TABLE second_sink_table (
>         id BIGINT,
>         data VARCHAR
>     ) WITH (
>         'connector' = 'print'
>     )
> """)
> # 创建一个statement对象
> statement_set = table_env.create_statement_set()
> # 使用TABLE API 将table表插进first_sink_table表里面
> statement_set.add_insert("first_sink_table", table)
> # 使用SQL将table表插进second_sink_table表里面
> statement_set.add_insert_sql("INSERT INTO second_sink_table SELECT * FROM
> simple_source")
> # 执行查询
> statement_set.execute().wait()我执行上面脚本之后,输出以下的结果。在我理解输出内容的应该是1,2,1,2;而不是1,1,2,2。4&gt;
> +I(1,Hi)
> 4&gt; +I(1,Hi)
> 4&gt; +I(2,Hello)
> 4&gt; +I(2,Hello)

回复