Флинк. Данные пакетной загрузки. Исключение ООМJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Флинк. Данные пакетной загрузки. Исключение ООМ

Сообщение Anonymous »


Я попробовал перенести данные из одной таблицы в другую во Flink с помощью SQL в пакетном режиме и заметил, что сначала все данные пытаются кэшироваться в памяти, прежде чем идти дальше по конвейеру. Поскольку у меня много данных, я получаю сообщение об ошибке нехватки памяти. Есть ли способ читать данные порциями, а не все сразу?

Пример потока:

CREATE TABLE t_destination_nrt ( `fk_id` decimal(32, 0) первичный ключ не применяется, строка `fv_text`, временная метка `fd_timestamp`, строка `fv_desc` ) С ( 'коннектор' = 'jdbc', 'url' = 'jdbc:postgresql://192.168.1.17:5432/postgres', 'имя-таблицы' = 'nrt.t_destination', 'имя пользователя' = 'postgres', 'пароль' = 'postgres', 'scan.fetch-size' = '1000', 'lookup.cache.ttl' = '60-е', 'lookup.cache.max-rows' = '10000', 'lookup.max-retries' = '3', 'sink.buffer-flush.max-rows' = '5000', 'sink.buffer-flush.interval' = '2s', 'sink.max-retries' = '3' ) СОЗДАТЬ ТАБЛИЦУ t_source_nrt ( `fk_id` decimal(32, 0) первичный ключ не применяется, строка `fv_text`, временная метка `fd_timestamp` ) С ( 'коннектор' = 'jdbc', 'url' = 'jdbc:postgresql://192.168.1.17:5432/postgres', 'имя-таблицы' = 'nrt.t_source', 'имя пользователя' = 'postgres', 'пароль' = 'postgres', 'scan.fetch-size' = '1000', 'lookup.cache.ttl' = '60-е', 'lookup.cache.max-rows' = '10000', 'lookup.max-retries' = '3', 'sink.buffer-flush.max-rows' = '5000', 'sink.buffer-flush.interval' = '2s', 'sink.max-retries' = '3' ) СОЗДАТЬ ТАБЛИЦУ t_dict_nrt ( `fk_id` decimal(32, 0) первичный ключ не применяется, строка `fv_desc` ) С ( 'коннектор' = 'jdbc', 'url' = 'jdbc:postgresql://192.168.1.17:5432/postgres', 'имя-таблицы' = 'nrt.t_dict', 'имя пользователя' = 'postgres', 'пароль' = 'postgres' ) вставить в t_destination_nrt (fk_id, fv_text, fd_timestamp, fv_desc) выберите /*+ ТРАНСЛЯЦИЯ(dn) */ sn.fk_id, sn.fv_text, sn.fd_timestamp, dn.fv_desc из t_source_nrt sn left join t_dict_nrt dn на sn.fk_id % 3 = dn.fk_id Я пытаюсь перезагрузить данные с помощью flink sql в пакетном режиме из таблицы в таблицу. Я ожидал, что данные будут загружаться частями, но flink выполняет полное кэширование исходной таблицы перед вставкой в ​​пункт назначения.


Изображение



Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»