Spec-Zone.ru › MySQL 9.2

25.5.13 ndb_import — Импорт данных CSV в NDB

ndb_import импортирует данные в формате CSV, например, такие, что генерируются mysqldump --tab, непосредственно в NDB с использованием API NDB. ndb_import требует подключения к серверу управления NDB (ndb_mgmd), но не требует подключения к MySQL Server.

Использование

ndb_import db_name file_name options

ndb_import требует двух аргументов. db_name — имя базы данных, где находится таблица, в которую нужно импортировать данные; file_name — имя файла CSV, из которого нужно читать данные; это имя должно включать путь к файлу, если он не находится в текущем каталоге. Имя файла должно совпадать с именем таблицы; расширение файла, если оно есть, не учитывается.

ndb_import игнорирует пустые строки, которые считывает из файла CSV, за исключением случаев импорта одного столбца, когда пустое значение может быть использовано в качестве значения столбца. ndb_import обрабатывает это так же, как и оператор LOAD DATA.

ndb_import должен иметь возможность подключаться к серверу управления кластером NDB; по этой причине должно быть свободное [api] место в файле кластера config.ini.

Для дублирования существующей таблицы, использующей другой движок хранения, например, InnoDB, как таблицу NDB, используйте клиент mysql, чтобы выполнить оператор SELECT INTO OUTFILE для экспорта существующей таблицы в файл CSV, затем выполнить оператор CREATE TABLE LIKE для создания новой таблицы с такой же структурой, как и у существующей, а затем выполнить ALTER TABLE ... ENGINE=NDB над новой таблицей; после этого вызовите в командной строке ndb_import для загрузки данных в новую таблицу NDB. Например, существующая таблица InnoDB с именем myinnodb_table в базе данных с именем myinnodb может быть экспортирована в таблицу NDB с именем myndb_table в базе данных с именем myndb, как показано здесь, предполагая, что вы уже вошли как пользователь MySQL с соответствующими привилегиями:

  1. В клиенте mysql:

    mysql> USE myinnodb;
    
    mysql> SELECT * INTO OUTFILE '/tmp/myndb_table.csv'
         >  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
         >  LINES TERMINATED BY '\n'
         >  FROM myinnodbtable;
    
    mysql> CREATE DATABASE myndb;
    
    mysql> USE myndb;
    
    mysql> CREATE TABLE myndb_table LIKE myinnodb.myinnodb_table;
    
    mysql> ALTER TABLE myndb_table ENGINE=NDB;
    
    mysql> EXIT;
    Bye
    $>
    

    После создания целевой базы данных и таблицы работающий mysqld больше не нужен. Если хотите, вы можете остановить его с помощью mysqladmin shutdown или другим способом до продолжения.

  2. В командной строке:

    # if you are not already in the MySQL bin directory:
    $> cd path-to-mysql-bin-dir
    
    $> ndb_import myndb /tmp/myndb_table.csv --fields-optionally-enclosed-by='"' \
        --fields-terminated-by="," --fields-escaped-by='\\'
    

    Вывод должен быть похож на показанный здесь:

    job-1 import myndb.myndb_table from /tmp/myndb_table.csv
    job-1 [running] import myndb.myndb_table from /tmp/myndb_table.csv
    job-1 [success] import myndb.myndb_table from /tmp/myndb_table.csv
    job-1 imported 19984 rows in 0h0m9s at 2277 rows/s
    jobs summary: defined: 1 run: 1 with success: 1 with failure: 0
    $>
    

Все параметры, которые можно использовать с ndb_import, показаны в следующей таблице. Дополнительные описания следуют за таблицей.

  • --abort-on-error

    Формат командной строки --abort-on-error

    Создать дамп памяти при любой фатальной ошибке; используется только для отладки.

  • --ai-increment=#

    Формат командной строки --ai-increment=#
    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4294967295

    Для таблицы со скрытым первичным ключом укажите приращение автоинкремента, как это делает системная переменная auto_increment_increment в MySQL Server.

  • --ai-offset=#

    Формат командной строки --ai-offset=#
    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4294967295

    Для таблицы со скрытым первичным ключом укажите смещение автоинкремента. Аналогично системной переменной auto_increment_offset.

  • --ai-prefetch-sz=#

    Формат командной строки --ai-prefetch-sz=#
    Тип Integer
    Значение по умолчанию 1024
    Минимальное значение 1
    Максимальное значение 4294967295

    Для таблицы со скрытым первичным ключом укажите количество значений автоинкремента, которые предварительно извлекаются. Ведет себя так же, как системная переменная ndb_autoincrement_prefetch_sz в MySQL Server.

  • --character-sets-dir

    Формат командной строки --character-sets-dir=path

    Каталог, содержащий кодировки символов.

  • --connections=#

    Формат командной строки --connections=#
    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4294967295

    Количество соединений кластера для создания.

  • --connect-retries

    Формат командной строки --connect-retries=#
    Тип Integer
    Значение по умолчанию 12
    Минимальное значение 0
    Максимальное значение 12

    Количество попыток повторного подключения перед отказом.

  • --connect-retry-delay

    Формат командной строки --connect-retry-delay=#
    Тип Integer
    Значение по умолчанию 5
    Минимальное значение 0
    Максимальное значение 5

    Количество секунд ожидания между попытками связаться с сервером управления.

  • --connect-string

    Формат командной строки --connect-string=connection_string
    Тип String
    Значение по умолчанию [none]

    То же самое, что и --ndb-connectstring.

  • --continue

    Формат командной строки --continue

    При сбое задания продолжить выполнение следующего задания.

  • --core-file

    Формат командной строки --core-file

    Записать файл памяти при ошибке; используется при отладке.

  • --csvopt=string

    Формат командной строки --csvopt=opts
    Тип String
    Значение по умолчанию [none]

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

    • c: Поля разделяются запятой

    • d: Использовать значения по умолчанию, за исключением случаев, когда они переопределены другим параметром

    • n: Строки заканчиваются на \n

    • q: Поля могут быть заключены в двойные кавычки (")

    • r: Строка заканчивается на \r

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

    Этот параметр предназначен для использования в тестировании в условиях, когда трудно передавать escape-последовательности или кавычки.

  • --db-workers=#

    Формат командной строки --db-workers=#
    Тип Integer
    Значение по умолчанию 4
    Минимальное значение 1
    Максимальное значение 4294967295

    Количество потоков на каждый узел данных, выполняющих операции базы данных.

  • --defaults-file

    Формат командной строки --defaults-file=path
    Тип String
    Значение по умолчанию [none]

    Читать параметры по умолчанию только из указанного файла.

  • --defaults-extra-file

    Формат командной строки --defaults-extra-file=path
    Тип String
    Значение по умолчанию [none]

    Прочитать указанный файл после глобальных файлов.

  • --defaults-group-suffix

    Формат командной строки --defaults-group-suffix=string
    Тип String
    Значение по умолчанию [none]

    Также читает группы с concat(group, suffix).

  • --errins-type=name

    Формат командной строки --errins-type=name
    Тип Enumeration
    Значение по умолчанию [none]
    Допустимые значения

    stopjob

    stopall

    sighup

    sigint

    list

    Тип вставки ошибки; используйте list в качестве значения name, чтобы получить все возможные значения. Эта опция используется только для целей тестирования.

  • --errins-delay=#

    Формат командной строки --errins-delay=#
    Тип Integer
    Значение по умолчанию 1000
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения ms

    Задержка вставки ошибки в миллисекундах; добавляется случайное изменение. Эта опция используется только для целей тестирования.

  • --fields-enclosed-by=char

    Формат командной строки --fields-enclosed-by=char
    Тип String
    Значение по умолчанию [none]

    Это работает так же, как опция FIELDS ENCLOSED BY для оператора LOAD DATA, указывая символ, который должен интерпретироваться как кавычки для значений полей. Для CSV-ввода это то же самое, что и --fields-optionally-enclosed-by.

  • --fields-escaped-by=name

    Формат командной строки --fields-escaped-by=char
    Тип String
    Значение по умолчанию \

    Укажите escape-символ так же, как опция FIELDS ESCAPED BY для оператора SQL LOAD DATA.

  • --fields-optionally-enclosed-by=char

    Формат командной строки --fields-optionally-enclosed-by=char
    Тип String
    Значение по умолчанию [none]

    Это работает так же, как опция FIELDS OPTIONALLY ENCLOSED BY для оператора LOAD DATA, указывая символ, который должен интерпретироваться как необязательные кавычки для значений полей. Для CSV-ввода это то же самое, что и --fields-enclosed-by.

  • --fields-terminated-by=char

    Формат командной строки --fields-terminated-by=char
    Тип String
    Значение по умолчанию \t

    Это работает так же, как опция FIELDS TERMINATED BY для оператора LOAD DATA, указывая символ, который должен интерпретироваться как разделитель полей.

  • --help

    Формат командной строки --help

    Отобразить справку и выйти.

  • --idlesleep=#

    Формат командной строки --idlesleep=#
    Тип Integer
    Значение по умолчанию 1
    Минимальное значение 1
    Максимальное значение 4294967295
    Единица измерения ms

    Количество миллисекунд для ожидания выполнения дополнительной работы.

  • --idlespin=#

    Формат командной строки --idlespin=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Количество попыток перед переходом в спящий режим.

  • --ignore-lines=#

    Формат командной строки --ignore-lines=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Заставляет ndb_import игнорировать первые # строки входного файла. Это может быть использовано для пропуска заголовка файла, который не содержит никаких данных.

  • --input-type=name

    Формат командной строки --input-type=name
    Тип Enumeration
    Значение по умолчанию csv
    Допустимые значения

    random

    csv

    Устанавливает тип входных данных. Значение по умолчанию — csv; random предназначено только для целей тестирования. .

  • --input-workers=#

    Формат командной строки --input-workers=#
    Тип Integer
    Значение по умолчанию 4
    Минимальное значение 1
    Максимальное значение 4294967295

    Устанавливает количество потоков, обрабатывающих входные данные.

  • --keep-state

    Формат командной строки --keep-state

    По умолчанию ndb_import удаляет все файлы состояния (кроме непустых файлов *.rej) по завершении задания. Укажите эту опцию (аргумент не требуется), чтобы принудительно сохранить все файлы состояния.

  • --lines-terminated-by=name

    Формат командной строки --lines-terminated-by=char
    Тип String
    Значение по умолчанию \n

    Работает аналогично опции LINES TERMINATED BY для оператора LOAD DATA, указывая символ, который интерпретируется как конец строки.

  • --log-level=#

    Формат командной строки --log-level=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 2

    Выполняет внутреннее логирование на заданном уровне. Эта опция предназначена в первую очередь для внутреннего и разработческого использования.

    Только в отладочных сборках NDB уровень логирования может быть установлен с помощью этой опции до максимума 4.

  • --login-path

    Формат командной строки --login-path=path
    Тип String
    Значение по умолчанию [none]

    Читает заданный путь из файла входа.

  • --no-login-paths

    Формат командной строки --no-login-paths

    Пропускает чтение параметров из файла пути входа.

  • --max-rows=#

    Формат командной строки --max-rows=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения bytes

    Импортировать только это количество строк входных данных; значение по умолчанию равно 0, что импортирует все строки.

  • --missing-ai-column

    Формат командной строки --missing-ai-column='name'
    Тип Boolean
    Значение по умолчанию FALSE

    Этот параметр может использоваться при импорте одной таблицы или нескольких таблиц. При его использовании это указывает на то, что импортируемый CSV-файл не содержит никаких значений для столбца AUTO_INCREMENT, и что ndb_import должен предоставить их; если параметр используется, и столбец AUTO_INCREMENT содержит какие-либо значения, операция импорта не может быть выполнена.

  • --monitor=#

    Формат командной строки --monitor=#
    Тип Integer
    Значение по умолчанию 2
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения bytes

    Периодически выводит состояние запущенной задачи, если что-то изменилось (состояние, отклоненные строки, временные ошибки). Установите значение 0, чтобы отключить этот отчет. Установка значения 1 выведет любое обнаруженное изменение. Более высокие значения снижают частоту этого отчета о состоянии.

  • --ndb-connectstring

    Формат командной строки --ndb-connectstring=connection_string
    Тип String
    Значение по умолчанию [none]

    Устанавливает строку соединения для подключения к ndb_mgmd. Синтаксис: [nodeid=id;][host=]hostname[:port]. Переопределяет записи в NDB_CONNECTSTRING и my.cnf.

  • --ndb-mgm-tls

    Формат командной строки --ndb-mgm-tls=level
    Тип Enumeration
    Значение по умолчанию relaxed
    Допустимые значения

    relaxed

    strict

    Устанавливает уровень поддержки TLS, необходимый для подключения к серверу управления; одно из relaxed или strict. relaxed (по умолчанию) означает, что попытка соединения TLS предпринимается, но успех не обязателен; strict означает, что для подключения требуется TLS.

  • --ndb-mgmd-host

    Формат командной строки --ndb-mgmd-host=connection_string
    Тип String
    Значение по умолчанию [none]

    То же, что и --ndb-connectstring.

  • --ndb-nodeid

    Формат командной строки --ndb-nodeid=#
    Тип Integer
    Значение по умолчанию [none]

    Устанавливает идентификатор узла для этого узла, переопределяя любой идентификатор, установленный --ndb-connectstring.

  • --ndb-optimized-node-selection

    Формат командной строки --ndb-optimized-node-selection

    Включает оптимизацию для выбора узлов для транзакций. Включено по умолчанию; используйте --skip-ndb-optimized-node-selection для отключения.

  • --ndb-tls-search-path

    Формат командной строки --ndb-tls-search-path=list
    Тип Path name
    Значение по умолчанию (Unix) $HOME/ndb-tls
    Значение по умолчанию (Windows) $HOMEDIR/ndb-tls

    Указывает список каталогов для поиска файла CA. На платформах Unix имена каталогов разделяются двоеточиями (:); в системах Windows в качестве разделителя используется символ точки с запятой (;). Ссылка на каталог может быть относительной или абсолютной; она может содержать одну или несколько переменных среды, каждая из которых обозначается предшествующим знаком доллара ($) и расширяется перед использованием.

    Поиск начинается с самого левого именованного каталога и продолжается слева направо, пока не будет найден файл. Пустая строка обозначает пустой путь поиска, что приводит к сбою всех поисков. Строка, состоящая из одной точки (.), указывает, что путь поиска ограничен текущим рабочим каталогом.

    Если путь поиска не указан, используется встроенное значение по умолчанию. Это значение зависит от используемой платформы: в Windows это \ndb-tls; на других платформах (включая Linux) это $HOME/ndb-tls. Это можно переопределить, скомпилировав NDB Cluster с использованием -DWITH_NDB_TLS_SEARCH_PATH.

  • --no-asynch

    Формат командной строки --no-asynch

    Выполнять операции с базой данных пакетами, в отдельных транзакциях.

  • --no-defaults

    Формат командной строки --no-defaults

    Не считывать параметры по умолчанию из любого файла параметров, кроме файла входа.

  • --no-hint

    Формат командной строки --no-hint

    Не использовать подсказки ключа распределения для выбора узла данных.

  • --opbatch=#

    Формат командной строки --opbatch=#
    Тип Integer
    Значение по умолчанию 256
    Минимальное значение 1
    Максимальное значение 4294967295
    Единица измерения bytes

    Установить ограничение на количество операций (включая операции с BLOB), а значит, и на количество асинхронных транзакций в каждом пакете выполнения.

  • --opbytes=#

    Формат командной строки --opbytes=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения bytes

    Установить ограничение на количество байт в каждом пакете выполнения. Использовать 0 для отсутствия ограничения.

  • --output-type=name

    Формат командной строки --output-type=name
    Тип Enumeration
    Значение по умолчанию ndb
    Допустимые значения null

    Установить тип вывода. ndb является значением по умолчанию. null используется только для тестирования.

  • --output-workers=#

    Формат командной строки --output-workers=#
    Тип Integer
    Значение по умолчанию 2
    Минимальное значение 1
    Максимальное значение 4294967295

    Установить количество потоков, обрабатывающих вывод или передающих операции с базой данных.

  • --pagesize=#

    Формат командной строки --pagesize=#
    Тип Integer
    Значение по умолчанию 4096
    Минимальное значение 1
    Максимальное значение 4294967295
    Единица измерения bytes

    Выровнять буферы ввода-вывода по заданному размеру.

  • --pagecnt=#

    Формат командной строки --pagecnt=#
    Тип Integer
    Значение по умолчанию 64
    Минимальное значение 1
    Максимальное значение 4294967295

    Установить размер буферов ввода-вывода как кратное значение размера страницы. Рабочий процесс ввода CSV выделяет буфер удвоенного размера.

  • --polltimeout=#

    Формат командной строки --polltimeout=#
    Тип Integer
    Значение по умолчанию 1000
    Минимальное значение 1
    Максимальное значение 4294967295
    Единица измерения ms

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

  • --print-defaults

    Формат командной строки --print-defaults

    Вывести список аргументов программы и завершить работу.

  • --rejects=#

    Формат командной строки --rejects=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Ограничить количество отклоненных строк (строки с постоянными ошибками) при загрузке данных. Значение по умолчанию равно 0, что означает, что любая отклоненная строка приводит к фатальной ошибке. Любые строки, из-за которых превышается ограничение, добавляются в файл .rej.

    Ограничение, накладываемое этим параметром, действует в течение текущего запуска. Запуск, возобновленный с помощью --resume, считается “новым” запуском в этом отношении.

  • --resume

    Формат командной строки --resume

    Если задание прервано (из-за временной ошибки базы данных или при прерывании пользователем), возобновить обработку с любых строк, которые еще не обработаны.

  • --rowbatch=#

    Формат командной строки --rowbatch=#
    Тип Integer
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения rows

    Установить ограничение на количество строк в очереди строк. Использовать 0 для отсутствия ограничения.

  • --rowbytes=#

    Формат командной строки --rowbytes=#
    Тип Integer
    Значение по умолчанию 262144
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения bytes

    Установить ограничение на количество байт в очереди строк. Использовать 0 для отсутствия ограничения.

  • --stats

    Формат командной строки --stats

    Сохраняет информацию об опциях, связанных с производительностью и другими внутренними статистическими данными, в файлах с именами *.sto и *.stt. Эти файлы всегда сохраняются при успешном завершении (даже если --keep-state не указан).

  • --state-dir=name

    Формат командной строки --state-dir=path
    Тип Строка
    Значение по умолчанию .

    Указывает место для записи файлов состояния (tbl_name.map, tbl_name.rej, tbl_name.res и tbl_name.stt), создаваемых в процессе работы программы; по умолчанию используется текущий каталог.

  • --table=name

    Формат командной строки --table=name
    Тип Строка
    Значение по умолчанию [input file base name]

    По умолчанию, ndb_import пытается импортировать данные в таблицу, имя которой является базовым именем CSV-файла, из которого считываются данные. Вы можете изменить выбор имени таблицы, указав его с помощью опции --table (сокращенная форма -t).

  • --tempdelay=#

    Формат командной строки --tempdelay=#
    Тип Целое число
    Значение по умолчанию 10
    Минимальное значение 0
    Максимальное значение 4294967295
    Единица измерения мс

    Количество миллисекунд для ожидания после временных ошибок.

  • --temperrors=#

    Формат командной строки --temperrors=#
    Тип Целое число
    Значение по умолчанию 0
    Минимальное значение 0
    Максимальное значение 4294967295

    Количество раз, когда транзакция может завершиться неудачно из-за временной ошибки в каждой группе выполнения. По умолчанию 0, что означает, что любая временная ошибка является фатальной. Временные ошибки не добавляют строк в файл .rej.

  • --verbose, -v

    Формат командной строки --verbose[=#]
    Тип Булево
    Значение по умолчанию false

    Включить подробный вывод.

  • --usage

    Формат командной строки --usage

    Отобразить текст справки и выйти; то же, что и --help.

  • --version

    Формат командной строки --version

    Отобразить информацию о версии и выйти.

Как и с LOAD DATA, опции форматирования полей и строк должны соответствовать тем, которые использовались при создании CSV-файла, независимо от того, был ли он создан с помощью SELECT INTO ... OUTFILE или каким-либо другим способом. Нет эквивалента инструкции LOAD DATA опции STARTING WITH.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/mysql-cluster-programs-ndb-import.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API