Spec-Zone.ru › MySQL 8.4

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, включают опции для указания разделителей полей, экранирования и разделителей строк, и описаны позднее в этом разделе.

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-8.4-en/mysql-cluster-programs-ndb-import.html

Spec-Zone.ru

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