ndb_import导入csv格式的数据,例如由, mysqldump——选项卡
,直接进入NDB
使用NDB API。ndb_import需要连接到NDB管理服务器(ndb_mgmd)功能;它不需要连接到MySQL服务器。
使用
ndb_importdb_namefile_name选项
ndb_import需要两个参数。db_name
要导入数据的表所在的数据库的名称;file_name
是要从中读取数据的CSV文件的名称;如果文件不在当前目录中,则必须包含该文件的路径。文件的名称必须与表的名称匹配;文件的扩展名(如果有的话)不被考虑在内。支持的选项ndb_import包括用于指定字段分隔符、转义符和行终止符的规则,这些将在本节后面进行描述。ndb_import必须能够连接到NDB集群管理服务器;因此,必须有一个未使用的(api)
集群槽位config.ini
文件。
复制使用不同存储引擎的现有表,例如InnoDB
,作为一个NDB
表,可以使用mysql客户端执行选择到输出文件
语句将现有表导出到CSV文件,然后执行创建表像
语句以创建具有与现有表相同结构的新表,然后执行ALTER TABLE……引擎= NDB
在新桌子上;之后,从系统shell调用ndb_import将数据加载到新的NDB
表格例如,一个现有的InnoDB
表命名myinnodb_table
在一个名为myinnodb
可以导出成NDB
表命名myndb_table
在一个名为myndb
如下所示,假设你已经以MySQL用户的身份登录,并拥有相应的权限:
在mysql客户:
mysql >使用myinnodb;mysql> SELECT * INTO OUTFILE '/tmp/myndb_table.csv' > FIELDS TERMINATED BY ',' optional wrapped BY ' ' ' ' ' '转义为'\\' > LINES TERMINATED BY '\n' > FROM myinnodbtable;创建mysql数据库mysql >使用myndb;mysql>创建表myndb_table修改表myndb_table ENGINE=NDB;mysql >退出;再见壳>
一旦创建了目标数据库和表,将运行mysqld不再需要。你可以停止使用mysqladmin关闭如果你愿意,可以在继续之前使用另一种方法。
在系统shell中:
如果你还没有在MySQL bin目录:shell> cd . #path-to-mysql-bin-dirShell > ndb_import myndb /tmp/myndb_table.csv——fields-optional - wrapped -by=' ' '\——fields-terminated-by=","——fields- escap- by='\\' '
输出应该类似如下所示:
工作1 myndb进口。myndb_tablefrom /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>
所有可以使用的选项ndb_import如下表所示。其他描述见下表。
表23.35 ndb_import程序使用的命令行选项
格式 | 描述 | 已添加、已弃用或已移除 |
---|---|---|
在任何致命错误时转储核心;用于调试 | (基于MySQL 8.0的所有NDB版本均支持) |
|
对于隐藏PK的表,指定autoincrement increment。看到mysqld | (基于MySQL 8.0的所有NDB版本均支持) |
|
对于具有隐藏PK的表,指定自动增量偏移量。看到mysqld | (基于MySQL 8.0的所有NDB版本均支持) |
|
对于具有隐藏PK的表,指定预取的自动递增值的数量。看到mysqld | (基于MySQL 8.0的所有NDB版本均支持) |
|
包含字符集的目录 | (基于MySQL 8.0的所有NDB版本均支持) |
|
在放弃连接之前重试连接的次数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
两次尝试联系管理服务器之间等待的秒数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
——ndb-connectstring一样 | (基于MySQL 8.0的所有NDB版本均支持) |
|
要创建的集群连接数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
当作业失败时,继续执行下一个作业 | (基于MySQL 8.0的所有NDB版本均支持) |
|
写核心文件出错;用于调试 | (基于MySQL 8.0的所有NDB版本均支持) |
|
执行数据库操作的每个数据节点的线程数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
在读取全局文件之后读取给定文件 | (基于MySQL 8.0的所有NDB版本均支持) |
|
只从给定的文件读取默认选项 | (基于MySQL 8.0的所有NDB版本均支持) |
|
也可以用concat(group,后缀)读取组 | (基于MySQL 8.0的所有NDB版本均支持) |
|
错误插入类型,用于测试目的;使用“list”获取所有可能的值 | (基于MySQL 8.0的所有NDB版本均支持) |
|
错误插入延迟(毫秒);添加随机变量 | (基于MySQL 8.0的所有NDB版本均支持) |
|
与LOAD DATA语句的BY选项所包含的字段相同。对于CSV输入,这与使用——fields-optional - enclosure -by相同 | (基于MySQL 8.0的所有NDB版本均支持) |
|
与LOAD DATA语句中的字段转义BY选项相同 | (基于MySQL 8.0的所有NDB版本均支持) |
|
与加载数据语句的BY选项可选括起的字段相同 | (基于MySQL 8.0的所有NDB版本均支持) |
|
与LOAD DATA语句的字段终止BY选项相同 | (基于MySQL 8.0的所有NDB版本均支持) |
|
|
显示帮助文本并退出 | (基于MySQL 8.0的所有NDB版本均支持) |
等待更多工作的休眠毫秒数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
空转前重试的次数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
忽略输入文件中的第#行。用于跳过非数据标头 | (基于MySQL 8.0的所有NDB版本均支持) |
|
输入类型:随机或csv | (基于MySQL 8.0的所有NDB版本均支持) |
|
处理输入的线程数。如果——input-type是csv,则必须为2或更多 | (基于MySQL 8.0的所有NDB版本均支持) |
|
状态文件(非空*除外)。Rej文件)通常在作业完成时删除。使用此选项将保留所有状态文件 | (基于MySQL 8.0的所有NDB版本均支持) |
|
与LOAD DATA语句的LINES TERMINATED BY选项相同 | (基于MySQL 8.0的所有NDB版本均支持) |
|
从登录文件读取给定路径 | (基于MySQL 8.0的所有NDB版本均支持) |
|
只导入此数量的输入数据行;默认值为0,它将导入所有行 | (基于MySQL 8.0的所有NDB版本均支持) |
|
如果某些内容发生了更改(状态、拒绝的行、临时错误),定期打印正在运行的作业的状态。值0表示禁止。值1打印所看到的任何更改。较高的值将以指数形式减少状态打印,直到达到某个预定义的限制 | (基于MySQL 8.0的所有NDB版本均支持) |
|
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目 | (基于MySQL 8.0的所有NDB版本均支持) |
|
——ndb-connectstring一样 | (基于MySQL 8.0的所有NDB版本均支持) |
|
设置此节点的节点ID,覆盖由——db-connectstring设置的任何ID | (基于MySQL 8.0的所有NDB版本均支持) |
|
为事务的节点选择启用优化。默认启用;使用——skip-ndb-optimized-node-selection禁用 | (基于MySQL 8.0的所有NDB版本均支持) |
|
在单个事务中批量运行数据库操作 | (基于MySQL 8.0的所有NDB版本均支持) |
|
不从除登录文件以外的任何选项文件读取默认选项 | (基于MySQL 8.0的所有NDB版本均支持) |
|
不要使用分布键提示来选择数据节点(TC) | (基于MySQL 8.0的所有NDB版本均支持) |
|
db执行批是发送到NDB内核的事务和操作的集合。该选项限制了一个db执行批处理中的NDB操作(包括blob操作)。因此,它也限制了异步事务的数量。值0无效 | (基于MySQL 8.0的所有NDB版本均支持) |
|
限制执行批处理中的字节数(默认为0 =无限制) | (基于MySQL 8.0的所有NDB版本均支持) |
|
输出类型:ndb为默认值,null用于测试 | (基于MySQL 8.0的所有NDB版本均支持) |
|
处理输出或中继数据库操作的线程数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
对齐I/O缓冲区到给定的大小 | (基于MySQL 8.0的所有NDB版本均支持) |
|
I/O缓冲区的大小为页面大小的倍数。CSV输入工作者分配双倍大小的缓冲区 | (基于MySQL 8.0的所有NDB版本均支持) |
|
完成的异步事务的每次轮询超时;轮询将继续进行,直到所有轮询都完成或出现错误 | (基于MySQL 8.0的所有NDB版本均支持) |
|
打印程序参数列表并退出 | (基于MySQL 8.0的所有NDB版本均支持) |
|
限制数据加载中被拒绝的行数(具有永久错误的行)。默认值为0,这意味着任何被拒绝的行都会导致致命错误。超过限制的行也被添加到*.rej中 | (基于MySQL 8.0的所有NDB版本均支持) |
|
如果作业中止(临时错误,用户中断),则恢复尚未处理的行 | (基于MySQL 8.0的所有NDB版本均支持) |
|
限制行队列中的行数(默认为0 =无限制);如果——input-type是随机的,必须是1或更多 | (基于MySQL 8.0的所有NDB版本均支持) |
|
限制行队列中的字节数(0 =无限制) | (基于MySQL 8.0的所有NDB版本均支持) |
|
在哪里写入状态文件;当前目录为default | (基于MySQL 8.0的所有NDB版本均支持) |
|
将与性能相关的选项和内部统计数据保存在*中。停下来和*。stt文件。即使没有使用——keep-state,成功完成后也会保留这些文件 | (基于MySQL 8.0的所有NDB版本均支持) |
|
在临时错误之间休眠的毫秒数 | (基于MySQL 8.0的所有NDB版本均支持) |
|
每个执行批处理中,由于临时错误导致事务失败的次数;0表示任何临时错误都是致命的。这样的错误不会导致将任何行写入.rej文件 | (基于MySQL 8.0的所有NDB版本均支持) |
|
|
显示帮助文本并退出;一样,帮助 | (基于MySQL 8.0的所有NDB版本均支持) |
|
启用详细输出 | (基于MySQL 8.0的所有NDB版本均支持) |
|
显示版本信息并退出 | (基于MySQL 8.0的所有NDB版本均支持) |
-
命令行格式 ——abort-on-error
类型 布尔 默认值 假
在任何致命错误时转储核心;仅用于调试。
-
命令行格式 ——ai-increment = #
类型 整数 默认值 1
最小值 1
最大值 4294967295
对于具有隐藏主键的表,指定自动递增的increment,例如
auto_increment_increment
MySQL服务器中的系统变量。 -
命令行格式 ——ai-offset = #
类型 整数 默认值 1
最小值 1
最大值 4294967295
对于具有隐藏主键的表,指定自动增量偏移量。类似于
auto_increment_offset
系统变量。 -
命令行格式 ——ai-prefetch-sz = #
类型 整数 默认值 1024
最小值 1
最大值 4294967295
对于具有隐藏主键的表,指定预取的自动递增值的数量。表现得像
ndb_autoincrement_prefetch_sz
MySQL服务器中的系统变量。 -
命令行格式 ——连接= #
类型 整数 默认值 1
最小值 1
最大值 4294967295
要创建的集群连接数。
-
命令行格式 ——继续
类型 布尔 默认值 假
当一个作业失败时,继续执行下一个作业。
-
命令行格式 ——db-workers = #
类型 整数 默认值 4
最小值 1
最大值 4294967295
执行数据库操作的每个数据节点的线程数。
-
命令行格式 ——errins-type =名字
类型 枚举 默认值 (没有)
有效值 stopjob
stopall
sighup
信号情报
列表
插入错误类型;使用
列表
随着的名字
值获取所有可能的值。此选项仅用于测试目的。 -
命令行格式 ——errins-delay = #
类型 整数 默认值 1000
最小值 0
最大值 4294967295
单位 女士
错误插入延迟(毫秒);添加随机变量。此选项仅用于测试目的。
-
命令行格式 ——fields-enclosed-by =字符
类型 字符串 默认值 (没有)
它的工作原理和
农田包围
选项对加载数据
语句,指定要解释为引用字段值的字符。对于CSV输入,这与——fields-optionally-enclosed-by
. -
命令行格式 ——fields-escaped-by =名字
类型 字符串 默认值 \
方法指定转义字符
字段逃跑了
选项对SQL执行加载数据
声明。 ——fields-optionally-enclosed-by
=字符
命令行格式 ——fields-optionally-enclosed-by =字符
类型 字符串 默认值 (没有)
它的工作原理和
可选的由
选项对加载数据
语句,指定要解释为可选引用字段值的字符。对于CSV输入,这与——fields-enclosed-by
.-
命令行格式 ——fields-terminated-by =字符
类型 字符串 默认值 \ t
它的工作原理和
字段终止的
选项对加载数据
语句,指定要解释为字段分隔符的字符。 -
命令行格式 ——idlesleep = #
类型 整数 默认值 1
最小值 1
最大值 4294967295
单位 女士
等待执行更多工作而休眠的毫秒数。
-
命令行格式 ——idlespin = #
类型 整数 默认值 0
最小值 0
最大值 4294967295
休眠前重试的次数。
-
命令行格式 ——ignore-lines = #
类型 整数 默认值 0
最小值 0
最大值 4294967295
导致ndb_import忽略第一个
#
输入文件的行数。这可用于跳过不包含任何数据的文件头。 -
命令行格式 ——输入类型=名字
类型 枚举 默认值 csv
有效值 随机
csv
设置输入类型的类型。默认值是
csv
;随机
仅用于测试目的。。 -
命令行格式 ——input-workers = #
类型 整数 默认值 4
最小值 1
最大值 4294967295
设置处理输入的线程数。
-
命令行格式 ——保守国家
类型 布尔 默认值 假
默认情况下,ndb_import删除所有状态文件(非空文件除外)
* .rej
当它完成一个作业时。指定此选项(不需要参数)将强制程序保留所有状态文件。 -
命令行格式 ——lines-terminated-by =名字
类型 字符串 默认值 \ n
它的工作原理和
行终止,
选项对加载数据
语句,指定要解释为行尾的字符。 -
命令行格式 ——进行日志级别= #
类型 整数 默认值 0
最小值 0
最大值 2
在给定级别执行内部日志记录。该选项主要用于内部和开发使用。
仅在NDB的调试版本中,可以使用此选项将日志记录级别设置为最大4。
-
命令行格式 ——最大行的= #
类型 整数 默认值 0
最小值 0
最大值 4294967295
单位 字节
只导入此数量的输入数据行;默认值为0,它将导入所有行。
-
命令行格式 ——监控= #
类型 整数 默认值 2
最小值 0
最大值 4294967295
单位 字节
如果某些内容发生了更改(状态、拒绝的行、临时错误),定期打印正在运行的作业的状态。设置为0可禁用此报告。设置为1将打印所看到的任何更改。较高的值会减少此状态报告的频率。
-
命令行格式 ——no-asynch
类型 布尔 默认值 假
在单个事务中批量运行数据库操作。
-
命令行格式 ——任何暗示
类型 布尔 默认值 假
不要使用分布键提示来选择数据节点。
-
命令行格式 ——opbatch = #
类型 整数 默认值 256
最小值 1
最大值 4294967295
单位 字节
对每个执行批处理的操作(包括blob操作)的数量以及异步事务的数量设置限制。
-
命令行格式 ——opbytes = #
类型 整数 默认值 0
最小值 0
最大值 4294967295
单位 字节
对每个执行批处理的字节数设置限制。使用0表示无限制。
-
命令行格式 ——输出类型=名字
类型 枚举 默认值 ndb
有效值 零
设置输出类型。
ndb
是默认的。零
仅用于测试。 -
命令行格式 ——output-workers = #
类型 整数 默认值 2
最小值 1
最大值 4294967295
设置处理输出或中继数据库操作的线程数。
-
命令行格式 ——页大小= #
类型 整数 默认值 4096
最小值 1
最大值 4294967295
单位 字节
对齐I/O缓冲区到给定的大小。
-
命令行格式 ——pagecnt = #
类型 整数 默认值 64
最小值 1
最大值 4294967295
将I/O缓冲区的大小设置为页面大小的倍数。CSV输入工作者分配两倍大小的缓冲区。
-
命令行格式 ——polltimeout = #
类型 整数 默认值 1000
最小值 1
最大值 4294967295
单位 女士
为已完成的异步事务设置每次轮询的超时;轮询将继续进行,直到所有轮询都完成或出现错误为止。
-
命令行格式 ——拒绝= #
类型 整数 默认值 0
最小值 0
最大值 4294967295
限制数据加载中被拒绝的行(具有永久错误的行)的数量。默认值为0,这意味着任何被拒绝的行都会导致致命错误。将导致超出限制的任何行添加到
.rej
文件。此选项施加的限制在当前运行期间有效。使用以下命令重新启动的运行
——简历
被认为是一个”新”为了这个目的而跑步。 -
命令行格式 ——简历
类型 布尔 默认值 假
如果作业中止(由于临时的数据库错误或用户中断),则恢复所有尚未处理的行。
-
命令行格式 ——rowbatch = #
类型 整数 默认值 0
最小值 0
最大值 4294967295
单位 行
对每个行队列的行数设置限制。使用0表示无限制。
-
命令行格式 ——rowbytes = #
类型 整数 默认值 262144
最小值 0
最大值 4294967295
单位 字节
对每个行队列的字节数设置限制。使用0表示无限制。
-
命令行格式 ——统计数据
类型 布尔 默认值 假
将与性能相关的选项信息和其他内部统计信息保存在命名为
*名. sto
而且* .stt
.这些文件总是在成功完成时保存(即使——保守国家
也没有指定)。 -
命令行格式 ——state-dir =名字
类型 字符串 默认值 .
在哪里写入状态文件(
,tbl_name
. map
,tbl_name
.rej
,tbl_name
r
)由程序运行产生;默认是当前目录。tbl_name
.stt -
命令行格式 ——tempdelay = #
类型 整数 默认值 10
最小值 0
最大值 4294967295
单位 女士
在临时错误之间休眠的毫秒数。
-
命令行格式 ——temperrors = #
类型 整数 默认值 0
最小值 0
最大值 4294967295
在每个执行批处理中,由于临时错误导致事务失败的次数。默认值为0,这意味着任何临时错误都是致命的。控件中添加的任何行都不会导致临时错误
.rej
文件。 -
命令行格式 ——详细
类型 布尔 默认值 假
启用详细输出。
-
命令行格式 ——print-defaults
打印程序参数列表并退出。
-
命令行格式 ——已
不要从除登录文件以外的任何选项文件中读取默认选项。
-
命令行格式 ——defaults-file =路径
类型 字符串 默认值 (没有)
只从给定的文件读取默认选项。
-
命令行格式 ——defaults-extra-file =路径
类型 字符串 默认值 (没有)
在读取全局文件之后读取给定文件。
-
命令行格式 ——defaults-group-suffix =字符串
类型 字符串 默认值 (没有)
也可以用concat(group,后缀)读取组。
-
命令行格式 ——登录路径=路径
类型 字符串 默认值 (没有)
从登录文件读取给定路径。
-
命令行格式 ——帮助
显示帮助文本并退出。
-
命令行格式 ——使用
显示帮助文本并退出;一样
——帮助
. -
命令行格式 ——版本
显示版本信息并退出。
-
命令行格式 ——ndb-connectstring =连接字符串
类型 字符串 默认值 (没有)
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目。
-
命令行格式 ——连接字符串=连接字符串
类型 字符串 默认值 (没有)
-
命令行格式 ——ndb-mgmd-host =连接字符串
类型 字符串 默认值 (没有)
-
命令行格式 ——ndb-nodeid = #
类型 整数 默认值 (没有)
设置此节点的节点ID,覆盖由
——ndb-connectstring
. -
命令行格式 ——核心文件
写核心文件出错;用于调试。
-
命令行格式 ——character-sets-dir =路径
包含字符集的目录。
-
命令行格式 ——connect-retries = #
类型 整数 默认值 12
最小值 0
最大值 12
在放弃连接之前重试连接的次数。
-
命令行格式 ——connect-retry-delay = #
类型 整数 默认值 5
最小值 0
最大值 5
两次尝试联系管理服务器之间等待的秒数。
——ndb-optimized-node-selection
命令行格式 ——ndb-optimized-node-selection
为事务的节点选择启用优化。默认启用;使用
——skip-ndb-optimized-node-selection
禁用。
与加载数据
,字段和行格式的选项与用于创建CSV文件的选项非常匹配,无论是否使用选择到…输出文件
或通过其他方式。没有等同的加载数据
声明从
选择。