21.4.14 ndb_import —将 CSV 数据导入 NDB

ndb_import使用 NDB API 将 CSV 格式的数据(例如mysqldump --tab生成的数据)直接导入NDBndb_import需要连接到 NDBManagement 服务器(ndb_mgmd)才能起作用;它不需要连接到 MySQL 服务器。

Usage

ndb_import db_name file_name options

ndb_import需要两个参数。 * db_name *是在其中找到要导入数据的 table 的数据库的名称; * file_name *是从中读取数据的 CSV 文件的名称;如果该文件不在当前目录中,则必须包含该文件的路径。文件名必须与 table 名匹配。不考虑文件 extensions(如果有)。 ndb_import支持的选项包括用于指定字段分隔符,转义符和行终止符的选项,本节稍后将进行介绍。 ndb_import必须能够连接到 NDB 群集 Management 服务器;因此,群集config.ini文件中必须有未使用的[api]插槽。

要将使用不同存储引擎(例如InnoDB)的现有 table 复制为NDBtable,请使用mysqlClient 端执行选择进入 Files语句以将现有 table 导出到 CSV 文件,然后执行创建 table 喜欢语句以创建新 table 与现有 table 具有相同结构的 table,然后对新 table 执行ALTER TABLE ... ENGINE = NDB;之后,从系统 Shell 调用ndb_import将数据加载到新的NDBtable 中。例如,假设您已经以具有适当特权的 MySQL 用户身份登录,则可以将名为myinnodb的数据库中现有的InnoDBtablemyinnodb_table导出到名为myndb的数据库中的NDBtablemyndb_table中,如下所示。

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
shell>

创建目标数据库和 table 后,不再需要运行的mysqld。您可以根据需要使用mysqladmin shutdown或其他方法将其停止,然后再 continue。

# if you are not already in the MySQL bin directory:
shell> cd path-to-mysql-bin-dir

shell> 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
shell>

下 table 包含特定于ndb_import的选项。附加说明如下 table 所示。有关大多数 NDB 群集程序(包括ndb_import)共有的选项,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”

table21.250 ndb_import 程序的命令行选项

Format Description 添加,不建议使用或删除
--abort-on-error 在发生致命错误时转储核心;用于调试 添加:NDB 7.6.2
--ai-increment=# 对于具有隐藏 PK 的 table,请指定自动递增增量。见 mysqld 添加:NDB 7.6.2
--ai-offset=# 对于具有隐藏 PK 的 table,请指定自动增量偏移量。见 mysqld 添加:NDB 7.6.2
--ai-prefetch-sz=# 对于具有隐藏 PK 的 table,请指定预取的自动增量值的数量。见 mysqld 添加:NDB 7.6.2
--connections=# 要创建的集群连接数 添加:NDB 7.6.2
--continue 作业失败时,continue 下一个作业 添加:NDB 7.6.2
--db-workers=# 每个数据节点执行数据库操作的线程数 添加:NDB 7.6.2
--errins-type=name 错误插入类型,用于测试目的;使用“列 table”获取所有可能的值 添加:NDB 7.6.2
--errins-delay=# 错误插入延迟(以毫秒为单位);随机变化被添加 添加:NDB 7.6.2
--fields-enclosed-by=char 与 LOAD DATA 语句的 FIELDS ENCLOSED BY 选项相同。对于 CSVImporting,这与使用--fields-optionally-enclosed-by 相同 添加:NDB 7.6.2
--fields-escaped-by=name 与 LOAD DATA 语句的 FIELDS ESCAPED BY 选项相同 添加:NDB 7.6.2
--fields-optionally-enclosed-by=char 与 LOAD DATA 语句的 FIELDS OPTIONALLY ENCLOSED BY 选项相同 添加:NDB 7.6.2
--fields-terminated-by=char 与 LOAD DATA 语句的 FIELDS TERMINATED BY 选项相同 添加:NDB 7.6.2
--idlesleep=# await 更多操作的睡眠毫秒数 添加:NDB 7.6.2
--idlespin=# 空闲睡眠前重试的次数 添加:NDB 7.6.2
--ignore-lines=# 忽略 Importing 文件中的前#行。用于跳过非数据头 添加:NDB 7.6.2
--input-type=name Importing 类型:随机或 CSV 添加:NDB 7.6.2
--input-workers=# 处理 Importing 的线程数。如果--input-type 为 csv,则必须为 2 或更大 添加:NDB 7.6.2
--keep-state 状态文件(非空* .rej 文件除外)通常在作业完成时被删除。使用此选项将导致保留所有状态文件 添加:NDB 7.6.4
--lines-terminated-by=name 与 LOAD DATA 语句的 LINES TERMINATED BY 选项相同 添加:NDB 7.6.2
--max-rows=# 仅导入此数量的 Importing 数据行;默认值为 0,将导入所有行 添加:NDB 7.6.2
--monitor=# 如果发生了某些更改(状态,拒绝的行,临时错误),请定期打印正在运行的作业的状态。值 0 禁用。值 1 打印任何可见的更改。较高的值将状态打印成指数减少,直至达到 sched 义的极限 添加:NDB 7.6.2
--no-asynch 在单个事务中批量运行数据库操作 添加:NDB 7.6.2
--no-hint 不要使用分发键提示来选择数据节点(TC) 添加:NDB 7.6.2
--opbatch=# 数据库执行批处理是发送到 NDB 内核的一组事务和操作。此选项限制数据库执行批处理中的 NDB 操作(包括 Blob 操作)。因此,它也限制了异步 Transaction 的数量。值 0 无效 添加:NDB 7.6.2
--opbytes=# 执行批处理中的限制字节(默认 0 =无限制) 添加:NDB 7.6.2
--output-type=name 输出类型:默认为 ndb,用于测试时为 null 添加:NDB 7.6.2
--output-workers=# 处理输出或中继数据库操作的线程数 添加:NDB 7.6.2
--pagesize=# 将 I/O 缓冲区对齐到给定的大小 添加:NDB 7.6.2
--pagecnt=# I/O 缓冲区的大小为页面大小的倍数。 CSVImporting 工作程序分配一个双倍大小的缓冲区 添加:NDB 7.6.2
--polltimeout=# 已完成异步事务的每次轮询超时;轮询将 continue 进行,直到完成所有轮询或发生错误 添加:NDB 7.6.2
--rejects=# 限制数据加载中被拒绝的行(具有永久错误的行)的数量。默认值为 0,这意味着任何拒绝的行都会导致致命错误。超出限制的行也添加到* .rej 添加:NDB 7.6.2
--resume 如果作业中止(临时错误,用户中断),请 continue 处理尚未处理的行 添加:NDB 7.6.2
--rowbatch=# 限制行队列中的行(默认 0 =无限制);如果--input-type 是 random,则必须为 1 或更大 添加:NDB 7.6.2
--rowbytes=# 限制行队列中的字节(0 =无限制) 添加:NDB 7.6.2
--state-dir=name 写入状态文件的位置;当前目录为默认目录 添加:NDB 7.6.2
--stats 将与性能相关的选项和内部统计信息保存在* .sto 和* .stt 文件中。即使未使用--keep-state,这些文件也会成功完成 添加:NDB 7.6.4
--tempdelay=# 两次临时错误之间睡眠的毫秒数 添加:NDB 7.6.2
--temperrors=# 每个执行批处理由于临时错误而导致事务失败的次数; 0table 示任何临时错误都是致命的。此类错误不会导致将任何行写入.rej 文件 添加:NDB 7.6.2
--verbose ,

-v
启用详细输出 添加:NDB 7.6.2

Property Value
Command-Line Format --abort-on-error
Introduced 5.7.18-ndb-7.6.2
Type Boolean
Default Value FALSE

在发生致命错误时转储核心;仅用于调试。

Property Value
Command-Line Format --ai-increment=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1
Minimum Value 1
Maximum Value 4294967295

对于具有隐藏主键的 table,请指定自动增量,就像 MySQL 服务器中的auto_increment_increment系统变量一样。

Property Value
Command-Line Format --ai-offset=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1
Minimum Value 1
Maximum Value 4294967295

对于具有隐藏主键的 table,请指定自动增量偏移量。与auto_increment_offset系统变量相似。

Property Value
Command-Line Format --ai-prefetch-sz=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1024
Minimum Value 1
Maximum Value 4294967295

对于具有隐藏主键的 table,请指定预取的自动增量值的数量。行为类似于ndb_autoincrement_prefetch_sz系统变量在 MySQL Server 中的行为。

Property Value
Command-Line Format --connections=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1
Minimum Value 1
Maximum Value 4294967295

要创建的集群连接数。

Property Value
Command-Line Format --continue
Introduced 5.7.18-ndb-7.6.2
Type Boolean
Default Value FALSE

作业失败时,请 continue 下一个作业。

Property Value
Command-Line Format --db-workers=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
默认值(≥5.7.20-ndb-7.6.4) 4
默认值(≥5.7.18-ndb-7.6.2,≤5.7.18-ndb-7.6.3) 1
Minimum Value 1
Maximum Value 4294967295

每个数据节点执行数据库操作的线程数。

Property Value
Command-Line Format --errins-type=name
Introduced 5.7.18-ndb-7.6.2
Type Enumeration
Default Value [none]
Valid Values stopjob

stopall
sighup
sigint
list

错误插入类型;使用list作为* name *值来获取所有可能的值。此选项仅用于测试目的。

Property Value
Command-Line Format --errins-delay=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1000
Minimum Value 0
Maximum Value 4294967295
Unit ms

错误插入延迟(以毫秒为单位);随机变化被添加。此选项仅用于测试目的。

Property Value
Command-Line Format --fields-enclosed-by=char
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value [none]

这与FIELDS ENCLOSED BY选项对LOAD DATA语句所做的工作方式相同,将要插入的字符指定为引号字段值。对于 CSVImporting,这与--fields-optionally-enclosed-by相同。

Property Value
Command-Line Format --fields-escaped-by=name
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value \

以与FIELDS ESCAPED BY选项对 SQL LOAD DATA语句相同的方式指定转义字符。

Property Value
Command-Line Format --fields-optionally-enclosed-by=char
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value [none]

这与FIELDS OPTIONALLY ENCLOSED BY选项对LOAD DATA语句所做的工作方式相同,将要插入的字符指定为可选的引号字段值。对于 CSVImporting,这与--fields-enclosed-by相同。

Property Value
Command-Line Format --fields-terminated-by=char
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value \t

这与LOAD DATA语句的FIELDS TERMINATED BY选项相同,其作用是指定要插入的字符作为字段分隔符。

Property Value
Command-Line Format --idlesleep=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1
Minimum Value 1
Maximum Value 4294967295
Unit ms

await 更多工作执行的睡眠毫秒数。

Property Value
Command-Line Format --idlespin=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295

睡觉前重试的次数。

Property Value
Command-Line Format --ignore-lines=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295

使 ndb_import 忽略 Importing 文件的前* # *行。这可以用来跳过不包含任何数据的文件头。

Property Value
Command-Line Format --input-type=name
Introduced 5.7.18-ndb-7.6.2
Type Enumeration
Default Value csv
Valid Values random

csv

设置 Importing 类型的类型。默认值为csv; random仅用于测试目的。 。

Property Value
Command-Line Format --input-workers=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
默认值(≥5.7.20-ndb-7.6.4) 4
默认值(≥5.7.18-ndb-7.6.2,≤5.7.18-ndb-7.6.3) 2
Minimum Value 1
Maximum Value 4294967295

设置处理 Importing 的线程数。

Property Value
Command-Line Format --keep-state
Introduced 5.7.20-ndb-7.6.4
Type Boolean
Default Value false

默认情况下,ndb_import 在完成作业时会删除所有状态文件(非空的*.rej文件除外)。指定此选项(也不需要参数),以强制程序保留所有状态文件。

Property Value
Command-Line Format --lines-terminated-by=name
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value \n

这与LOAD DATA语句的LINES TERMINATED BY选项相同,其作用是指定要插入的字符作为行尾。

Property Value
Command-Line Format --log-level=#
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 2

在给定级别执行内部日志记录。此选项主要供内部和开发使用。

仅在 NDB 的调试版本中,可以使用此选项将日志记录级别设置为最大 4.

Property Value
Command-Line Format --max-rows=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295
Unit bytes

仅导入此数量的 Importing 数据行;默认值为 0,将导入所有行。

Property Value
Command-Line Format --monitor=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 2
Minimum Value 0
Maximum Value 4294967295
Unit bytes

如果发生更改(状态,拒绝的行,临时错误),请定期打印正在运行的作业的状态。设置为 0 以禁用此报告。设置为 1 将打印看到的任何更改。较高的值会减少此状态报告的频率。

Property Value
Command-Line Format --no-asynch
Introduced 5.7.18-ndb-7.6.2
Type Boolean
Default Value FALSE

在单个事务中批量运行数据库操作。

Property Value
Command-Line Format --no-hint
Introduced 5.7.18-ndb-7.6.2
Type Boolean
Default Value FALSE

不要使用分发键提示来选择数据节点。

Property Value
Command-Line Format --opbatch=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 256
Minimum Value 1
Maximum Value 4294967295
Unit bytes

设置每个执行批处理的操作数(包括 Blob 操作)的限制,从而限制异步事务的数目。

Property Value
Command-Line Format --opbytes=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295
Unit bytes

设置每个执行批处理的字节数限制。无限制地使用 0.

Property Value
Command-Line Format --output-type=name
Introduced 5.7.18-ndb-7.6.2
Type Enumeration
Default Value ndb
Valid Values null

设置输出类型。 ndb是默认值。 null仅用于测试。

Property Value
Command-Line Format --output-workers=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 2
Minimum Value 1
Maximum Value 4294967295

设置处理输出或中继数据库操作的线程数。

Property Value
Command-Line Format --pagesize=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 4096
Minimum Value 1
Maximum Value 4294967295
Unit bytes

将 I/O 缓冲区对齐到给定的大小。

Property Value
Command-Line Format --pagecnt=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 64
Minimum Value 1
Maximum Value 4294967295

将 I/O 缓冲区的大小设置为页面大小的倍数。 CSVImporting 工作程序分配的缓冲区大小增加了一倍。

Property Value
Command-Line Format --polltimeout=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 1000
Minimum Value 1
Maximum Value 4294967295
Unit ms

为完成的异步事务设置每次轮询超时;轮询将 continue 进行,直到完成所有轮询或发生错误为止。

Property Value
Command-Line Format --rejects=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295

限制数据加载中被拒绝的行(具有永久错误的行)的数量。默认值为 0,这意味着任何拒绝的行都会导致致命错误。导致超出限制的所有行都将添加到.rej文件中。

此选项施加的限制在当前运行期间有效。为此,使用--resume重新启动的运行被视为“新”运行。

Property Value
Command-Line Format --resume
Introduced 5.7.18-ndb-7.6.2
Type Boolean
Default Value FALSE

如果作业被中止(由于临时的 db 错误或由于用户中断),请 continue 处理尚未处理的行。

Property Value
Command-Line Format --rowbatch=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295
Unit rows

设置每个行队列的行数限制。无限制地使用 0.

Property Value
Command-Line Format --rowbytes=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 262144
Minimum Value 0
Maximum Value 4294967295
Unit bytes

设置每个行队列的字节数限制。无限制地使用 0.

Property Value
Command-Line Format --stats
Introduced 5.7.20-ndb-7.6.4
Type Boolean
Default Value false

将有关性能和其他内部统计信息的选项的信息保存在名为*.sto*.stt的文件中。这些文件将始终保持成功完成的状态(即使也未指定--keep-state)。

Property Value
Command-Line Format --state-dir=name
Introduced 5.7.18-ndb-7.6.2
Type String
Default Value .

在哪里写入由程序运行产生的状态文件(tbl_name.maptbl_name.rejtbl_name.restbl_name.stt);默认为当前目录。

Property Value
Command-Line Format --tempdelay=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 10
Minimum Value 0
Maximum Value 4294967295
Unit ms

在临时错误之间睡眠的毫秒数。

Property Value
Command-Line Format --temperrors=#
Introduced 5.7.18-ndb-7.6.2
Type Integer
Default Value 0
Minimum Value 0
Maximum Value 4294967295

每个执行批处理由于临时错误导致事务失败的次数。默认值为 0,这意味着任何临时错误都是致命的。临时错误不会导致将任何行添加到.rej文件。

Property Value
Command-Line Format --verbose
Introduced 5.7.18-ndb-7.6.2
类型(≥5.7.20-ndb-7.6.4) Boolean
类型(≥5.7.18-ndb-7.6.2,≤5.7.18-ndb-7.6.3) Integer
默认值(≥5.7.20-ndb-7.6.4) false
默认值(≥5.7.18-ndb-7.6.2,≤5.7.18-ndb-7.6.3) 0
Minimum Value 0
Maximum Value 2

NDB 7.6.4 和更高版本:启用详细输出。

以前,此选项控制调试消息的内部日志记录级别。在 NDB 7.6.4 和更高版本中,为此使用--log-level选项。

LOAD DATA一样,无论是使用选择进入...输出还是通过其他方式,用于字段和行格式设置的选项都与用于创建 CSV 文件的选项非常匹配。没有与LOAD DATA语句STARTING WITH选项等效的选项。

NDB 7.6.2 中添加了ndb_import

首页