Я хочу улучшить производительность Pentaho для загрузки данных

У меня есть 4 миллиона записей, которым требуется ежедневная загрузка данных из источника в цель, и мы каждый день выполняем усечение. Это занимает около 9 часов, так как есть около 10 таблиц, загружающих 4 миллиона записей каждый день. Не могли бы вы рассказать мне, как мне улучшить производительность. Спасибо


person Ujjwal Chowdary    schedule 31.10.2016    source источник
comment
Какую СУБД вы используете?   -  person Nikhil    schedule 31.10.2016
comment
Мой источник — Oracle, а назначение — MySQL   -  person Ujjwal Chowdary    schedule 31.10.2016
comment
Я знаю это решение и уже внедрил, но бесполезно, и я даже увеличил количество копий до 4.   -  person Ujjwal Chowdary    schedule 01.11.2016
comment
Ok. Тогда я не могу придумать другого способа сделать это в Pentaho быстрее. Что насчет загрузчика сыпучих материалов?   -  person Nikhil    schedule 01.11.2016
comment
Я пробовал массовый загрузчик MySQL, но получаю сообщение об ошибке при создании файла mkfifo на сервере Linux, поскольку мы можем использовать массовый загрузчик MySQL только в среде Linux.   -  person Ujjwal Chowdary    schedule 01.11.2016
comment
Здравствуйте, Нихил, где я могу добавить настройки useServerPrepStmts=false rewriteBatchedStatements=true useCompression=true внутри сервера Pentaho, чтобы консоль администратора MySQL Pentaho могла подобрать настройки?   -  person Ujjwal Chowdary    schedule 09.11.2016
comment
В окне Подключения к базе данных вы увидите параметры в левой части окна. Вы можете ввести эти параметры там.   -  person Nikhil    schedule 09.11.2016
comment
Я хочу внести изменения в сервер BI, так как на сервере настроены соединения с базой данных. Так что, пожалуйста, скажите мне, как это сделать. Нужно ли редактировать какой-либо файл JDBC. Если да, то каков путь к нему. Спасибо   -  person Ujjwal Chowdary    schedule 09.11.2016
comment
Я не уверена. Посмотрите, поможет ли это: help.pentaho.com/Documentation/5.1 /0H0/060/010/030/020   -  person Nikhil    schedule 09.11.2016


Ответы (1)


У вас есть два варианта:

  1. Используйте этап массовой загрузки MY SQL, доступный в PDI. Это определенно ускорит загрузку данных.
  2. Скорость можно повысить, используя некоторые простые настройки JDBC-соединения.

    useServerPrepStmts=false
    rewriteBatchedStatements=true
    useCompression=true
    

Эти параметры должны быть введены в PDI при подключении. Дважды щелкните соединение, перейдите в «Параметры» и установите эти значения.

При совместном использовании useServerPrepStmts=false и rewriteBatchedStatements=true будут «подделывать» пакетные вставки на клиенте. В частности, операторы вставки:

INSERT INTO t (c1,c2) VALUES ('One',1);
INSERT INTO t (c1,c2) VALUES ('Two',2);
INSERT INTO t (c1,c2) VALUES ('Three',3);

будет переписано в:

`INSERT INTO t (c1,c2) VALUES ('One',1),('Two',2),('Three',3`);

Третий вариант useCompression=true сжимает трафик между клиентом и сервером MySQL.

Наконец, вы можете увеличить количество копий шага вывода до 2, чтобы в базу данных вставлялись два потока.

Надеюсь, поможет!

Ссылка (вариант 2): https://anonymousbi.wordpress.com

person Nikhil    schedule 31.10.2016