Как начать вставку строки после определенного числа в базу данных MySql с помощью Pentaho?
В основном то, что я хочу сделать, это то, что
У меня есть CSV-файл, содержащий 10000 строк, которые я хочу вставить в базу данных. Когда я начинаю свое преобразование, я хочу начать вставку в базу данных после 4500 строк. Поэтому я хочу узнать количество строк, которые я указал.
Как я могу этого достичь? Любая помощь будет отличной.
Описание изображения: я просто создаю преобразование, которое читает данные из CSV и записывает в базу данных. Я не знаю, какой шаг поможет мне достичь этого.
2 ответа
Решение
2018-05-03 11:23
Я не нашел шага для подсчета обработанных строк, но вы можете использовать шаг " Пользовательский класс Java", чтобы подсчитать номер строки и удалить первые 4500 с кодом, подобным следующему:
// This will be the counter.
Long rowCount;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
if (first) {
rowCount = 0l;
first=false;
}
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
// Increment of the counter.
rowCount++;
// Check ouf the counter. Doesn't output the current row if it's less than 4501.
if (rowCount>4500l) {
Object[] outputRow = createOutputRow(r, data.outputRowMeta.size());
// Adds the row count to a stream field.
get(Fields.Out, "Count").setValue(outputRow, rowCount);
putRow(data.outputRowMeta, outputRow);
}
return true;
}