You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Tony Wei <to...@gmail.com> on 2021/08/05 02:20:42 UTC

sql hints 在寫入透過 hive 創建的表時沒有作用

Hi Experts,

我嘗試使用 sql hints 去覆寫 hive sink table 的配置,發現 sql hints 沒有生效。
我測試了修改 `sink.parallelism` 來調整寫入的並行度,但並行度仍舊為 `1`。(sql 任務配置的並行度)

我運行的環境版本是 Flink 1.12.2,底下是我在 flink sql client 的操作流程和結果的截圖。
寫入的 `user_hive_2` 表是透過 hive beeline 創建的,不是透過 flink sql ddl。
同時我也確認了 `table.dynamic-table-options.enabled` 的配置是啟用的。

請問是否是我在配置上或是使用上弄錯了什麼嗎?感謝解答。

CREATE CATALOG MyCatalog
> WITH (
>   'type' = 'hive',
>   'hive-conf-dir' = '/etc/hive/conf',
>   'hadoop-conf-dir' = '/etc/hadoop/conf'
> );
>


CREATE TABLE gen_users (
>   name STRING,
>   age INT
> ) WITH (
>   'connector' = 'datagen',
>   'rows-per-second' = '50'
> );



insert into `MyCatalog`.`default`.`user_hive_2` /*+
> OPTIONS('sink.parallelism'='2') */ select * from gen_users;


[image: Screen Shot 2021-08-04 at 4.33.20 PM.png]
[image: Screen Shot 2021-08-04 at 4.33.32 PM.png]
[image: Screen Shot 2021-08-04 at 4.34.13 PM.png]

Re: sql hints 在寫入透過 hive 創建的表時沒有作用

Posted by Tony Wei <to...@gmail.com>.
Hi Caizhi,

我測試了 sink.rolling-policy.rollover-interval 這個配置,並且改使用 csv hive table 作為
sink table,結果是符合預期的。再次謝謝你的幫忙。

Tony Wei <to...@gmail.com> 於 2021年8月5日 週四 上午10:40寫道:

> Hi,
>
> 感謝指正,我的目的是為了測試 sql hints 是否生效,選擇 `sink.parallelism` 是
> 單純因為這個配置比較好觀察結果。
> 我會再嘗試其他 hive streaming sink 的配置測試看看。謝謝。
>
> Caizhi Weng <ts...@gmail.com> 於 2021年8月5日 週四 上午10:36寫道:
>
>> Hi!
>>
>> 单独设置 sink 并发是 1.13 的新特性。可以升级到 1.13 试试看。
>>
>> Tony Wei <to...@gmail.com> 于2021年8月5日周四 上午10:21写道:
>>
>> > Hi Experts,
>> >
>> > 我嘗試使用 sql hints 去覆寫 hive sink table 的配置,發現 sql hints 沒有生效。
>> > 我測試了修改 `sink.parallelism` 來調整寫入的並行度,但並行度仍舊為 `1`。(sql 任務配置的並行度)
>> >
>> > 我運行的環境版本是 Flink 1.12.2,底下是我在 flink sql client 的操作流程和結果的截圖。
>> > 寫入的 `user_hive_2` 表是透過 hive beeline 創建的,不是透過 flink sql ddl。
>> > 同時我也確認了 `table.dynamic-table-options.enabled` 的配置是啟用的。
>> >
>> > 請問是否是我在配置上或是使用上弄錯了什麼嗎?感謝解答。
>> >
>> > CREATE CATALOG MyCatalog
>> >> WITH (
>> >>   'type' = 'hive',
>> >>   'hive-conf-dir' = '/etc/hive/conf',
>> >>   'hadoop-conf-dir' = '/etc/hadoop/conf'
>> >> );
>> >>
>> >
>> >
>> > CREATE TABLE gen_users (
>> >>   name STRING,
>> >>   age INT
>> >> ) WITH (
>> >>   'connector' = 'datagen',
>> >>   'rows-per-second' = '50'
>> >> );
>> >
>> >
>> >
>> > insert into `MyCatalog`.`default`.`user_hive_2` /*+
>> >> OPTIONS('sink.parallelism'='2') */ select * from gen_users;
>> >
>> >
>> > [image: Screen Shot 2021-08-04 at 4.33.20 PM.png]
>> > [image: Screen Shot 2021-08-04 at 4.33.32 PM.png]
>> > [image: Screen Shot 2021-08-04 at 4.34.13 PM.png]
>> >
>> >
>>
>

Re: sql hints 在寫入透過 hive 創建的表時沒有作用

Posted by Tony Wei <to...@gmail.com>.
Hi,

感謝指正,我的目的是為了測試 sql hints 是否生效,選擇 `sink.parallelism` 是
單純因為這個配置比較好觀察結果。
我會再嘗試其他 hive streaming sink 的配置測試看看。謝謝。

Caizhi Weng <ts...@gmail.com> 於 2021年8月5日 週四 上午10:36寫道:

> Hi!
>
> 单独设置 sink 并发是 1.13 的新特性。可以升级到 1.13 试试看。
>
> Tony Wei <to...@gmail.com> 于2021年8月5日周四 上午10:21写道:
>
> > Hi Experts,
> >
> > 我嘗試使用 sql hints 去覆寫 hive sink table 的配置,發現 sql hints 沒有生效。
> > 我測試了修改 `sink.parallelism` 來調整寫入的並行度,但並行度仍舊為 `1`。(sql 任務配置的並行度)
> >
> > 我運行的環境版本是 Flink 1.12.2,底下是我在 flink sql client 的操作流程和結果的截圖。
> > 寫入的 `user_hive_2` 表是透過 hive beeline 創建的,不是透過 flink sql ddl。
> > 同時我也確認了 `table.dynamic-table-options.enabled` 的配置是啟用的。
> >
> > 請問是否是我在配置上或是使用上弄錯了什麼嗎?感謝解答。
> >
> > CREATE CATALOG MyCatalog
> >> WITH (
> >>   'type' = 'hive',
> >>   'hive-conf-dir' = '/etc/hive/conf',
> >>   'hadoop-conf-dir' = '/etc/hadoop/conf'
> >> );
> >>
> >
> >
> > CREATE TABLE gen_users (
> >>   name STRING,
> >>   age INT
> >> ) WITH (
> >>   'connector' = 'datagen',
> >>   'rows-per-second' = '50'
> >> );
> >
> >
> >
> > insert into `MyCatalog`.`default`.`user_hive_2` /*+
> >> OPTIONS('sink.parallelism'='2') */ select * from gen_users;
> >
> >
> > [image: Screen Shot 2021-08-04 at 4.33.20 PM.png]
> > [image: Screen Shot 2021-08-04 at 4.33.32 PM.png]
> > [image: Screen Shot 2021-08-04 at 4.34.13 PM.png]
> >
> >
>

Re: sql hints 在寫入透過 hive 創建的表時沒有作用

Posted by Caizhi Weng <ts...@gmail.com>.
Hi!

单独设置 sink 并发是 1.13 的新特性。可以升级到 1.13 试试看。

Tony Wei <to...@gmail.com> 于2021年8月5日周四 上午10:21写道:

> Hi Experts,
>
> 我嘗試使用 sql hints 去覆寫 hive sink table 的配置,發現 sql hints 沒有生效。
> 我測試了修改 `sink.parallelism` 來調整寫入的並行度,但並行度仍舊為 `1`。(sql 任務配置的並行度)
>
> 我運行的環境版本是 Flink 1.12.2,底下是我在 flink sql client 的操作流程和結果的截圖。
> 寫入的 `user_hive_2` 表是透過 hive beeline 創建的,不是透過 flink sql ddl。
> 同時我也確認了 `table.dynamic-table-options.enabled` 的配置是啟用的。
>
> 請問是否是我在配置上或是使用上弄錯了什麼嗎?感謝解答。
>
> CREATE CATALOG MyCatalog
>> WITH (
>>   'type' = 'hive',
>>   'hive-conf-dir' = '/etc/hive/conf',
>>   'hadoop-conf-dir' = '/etc/hadoop/conf'
>> );
>>
>
>
> CREATE TABLE gen_users (
>>   name STRING,
>>   age INT
>> ) WITH (
>>   'connector' = 'datagen',
>>   'rows-per-second' = '50'
>> );
>
>
>
> insert into `MyCatalog`.`default`.`user_hive_2` /*+
>> OPTIONS('sink.parallelism'='2') */ select * from gen_users;
>
>
> [image: Screen Shot 2021-08-04 at 4.33.20 PM.png]
> [image: Screen Shot 2021-08-04 at 4.33.32 PM.png]
> [image: Screen Shot 2021-08-04 at 4.34.13 PM.png]
>
>