Как начать вставку строки после определенного числа в базу данных MySql с помощью Pentaho?

В основном то, что я хочу сделать, это то, что

У меня есть CSV-файл, содержащий 10000 строк, которые я хочу вставить в базу данных. Когда я начинаю свое преобразование, я хочу начать вставку в базу данных после 4500 строк. Поэтому я хочу узнать количество строк, которые я указал.

Как я могу этого достичь? Любая помощь будет отличной.

Описание изображения: я просто создаю преобразование, которое читает данные из CSV и записывает в базу данных. Я не знаю, какой шаг поможет мне достичь этого.

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

2 ответа

Решение

Я использовал следующий файл чайника, который решил мою проблему. Благодаря @WorkingHard..и @jxc Для этого я использовал строки 'Добавить секвенсор' и 'Фильтр'.

Я не нашел шага для подсчета обработанных строк, но вы можете использовать шаг " Пользовательский класс 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;
}
Другие вопросы по тегам