Рекомендации по импорту больших файлов CSV

имя, которое вы (необязательно) даете структуре, называется именем тега и, как было отмечено, не является типом само по себе. Чтобы добраться до типа, требуется префикс struct.

Помимо GTK +, я не уверен, что тэг используется так же часто, как typedef для типа struct, поэтому в C ++ это распознается, и вы можете опустить ключевое слово struct и использовать тэг в качестве имени типа:


    struct MyStruct
    {
      int i;
    };

    // The following is legal in C++:
    MyStruct obj;
    obj.i = 7;

24
задан Jason Swett 12 November 2010 в 16:31
поделиться

3 ответа

Вы можете использовать Mysql LOAD DATA INFILE statemnt, он позволяет вам читать данные из текстового файла и очень быстро импортировать данные файла в таблицу базы данных.

LOAD DATA INFILE '/opt/lampp/htdocs/sample.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (title,@expired_date,discount) SET expired_date = STR_TO_DATE(@expired_date, '%m/%d/%Y');

для получения дополнительной информации: http://dev.mysql.com/doc/refman/5.5/en/load-data.html и http : //www.mysqltutorial.org/import-csv-file-mysql-table/

2
ответ дан 28 November 2019 в 23:30
поделиться

Вы можете использовать генератор для эффективного использования памяти. Небольшой фрагмент ниже может помочь вам.

#Method
public function getFileRecords($params)
{
    $fp = fopen('../' . $params['file'] . '.csv', 'r');
    //$header = fgetcsv($fp, 1000, ','); // skip header

    while (($line = fgetcsv($fp, 1000, ',')) != FALSE) {
        $line = array_map(function($str) {
            return str_replace('\N', '', $str);
        }, $line);

        yield $line;
    }

    fclose($fp);

    return;
}

#Implementation
foreach ($yourModel->getFileRecords($params) as $row) {
    // you get row as an assoc array;
    $yourModel->save($row);
}
1
ответ дан 28 November 2019 в 23:30
поделиться

Мне нужно время от времени делать это (импортировать большие нестандартизированные CSV-файлы, где каждая строка создает дюжину или около того связанных объектов БД), поэтому я написал скрипт на python, где я могу указать, что и куда и как все это связано , Затем скрипт просто генерирует операторы INSERT.

Вот оно: csv2db

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

0
ответ дан 28 November 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: