网站后台fpt,企业 网站 程序,建网站要多少钱一台,淘宝上成都网站建设INSERT INTO VALUES 语句支持将 SQL 中的值导入到 Doris 的表中。INSERT INTO VALUES 是一个同步导入方式#xff0c;执行导入后返回导入结果。可以通过请求的返回判断导入是否成功。INSERT INTO VALUES 可以保证导入任务的原子性#xff0c;要么全部导入成功#xff0c;要么…INSERT INTO VALUES 语句支持将 SQL 中的值导入到 Doris 的表中。INSERT INTO VALUES 是一个同步导入方式执行导入后返回导入结果。可以通过请求的返回判断导入是否成功。INSERT INTO VALUES 可以保证导入任务的原子性要么全部导入成功要么全部导入失败。
使用场景
用户希望仅导入几条假数据验证一下 Doris 系统的功能。此时适合使用 INSERT INTO VALUES 的语法语法和 MySQL 一样。并发的 INSERT INTO VALUES 的性能会受到 commit 阶段的瓶颈限制。导入数据量较大时可以打开 group commit 达到更高的性能。
基本原理
在使用 INSERT INTO VALUES 时需要通过 MySQL 协议发起导入作业给 FE 节点FE 会生成执行计划执行计划中前部是查询相关的算子最后一个是 OlapTableSink 算子用于将查询结果写到目标表中。执行计划会被发送给 BE 节点执行Doris 会选定一个节点做为 Coordinator 节点Coordinator 节点负责接受数据并分发数据到其他节点上。
快速上手
INSERT INTO VALUES 通过 MySQL 协议提交和传输。下例以 MySQL 命令行为例演示通过 INSERT INTO VALUES 提交导入作业。
详细语法可以参见 INSERT INTO。
前置检查
INSERT INTO VALUES 需要对目标表的 INSERT 权限。如果没有 INSERT 权限可以通过 GRANT 命令给用户授权。
创建导入作业
INSERT INTO VALUES
创建源表
CREATE TABLE testdb.test_table(user_id BIGINT NOT NULL COMMENT user id,name VARCHAR(20) COMMENT name,age INT COMMENT age
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;使用 INSERT INTO VALUES 向源表导入数据不推荐在生产环境中使用
INSERT INTO testdb.test_table (user_id, name, age)
VALUES (1, Emily, 25),(2, Benjamin, 35),(3, Olivia, 28),(4, Alexander, 60),(5, Ava, 17);INSERT INTO VALUES 是一种同步导入方式导入结果会直接返回给用户。
Query OK, 5 rows affected (0.308 sec)
{label:label_26eebc33411f441c_b2b286730d495e2c, status:VISIBLE, txnId:61071}查看导入数据
MySQL SELECT COUNT(*) FROM testdb.test_table;
----------
| count(*) |
----------
| 5 |
----------
1 row in set (0.179 sec)查看导入作业
可以通过 show load 命令查看已完成的 INSERT INTO VALUES 任务。
mysql SHOW LOAD FROM testdb\G
*************************** 1. row ***************************JobId: 77172Label: label_26eebc33411f441c_b2b286730d495e2cState: FINISHEDProgress: Unknown id: 77172Type: INSERTEtlInfo: NULLTaskInfo: cluster:N/A; timeout(s):14400; max_filter_ratio:0.0ErrorMsg: NULLCreateTime: 2024-11-20 16:44:08EtlStartTime: 2024-11-20 16:44:08EtlFinishTime: 2024-11-20 16:44:08LoadStartTime: 2024-11-20 16:44:08
LoadFinishTime: 2024-11-20 16:44:08URL: JobDetails: {Unfinished backends:{},ScannedRows:0,TaskNumber:0,LoadBytes:0,All backends:{},FileNumber:0,FileSize:0}TransactionId: 61071ErrorTablets: {}User: rootComment:
1 row in set (0.00 sec)取消导入作业
用户可以通过 Ctrl-C 取消当前正在执行的 INSERT INTO VALUES 作业。
参考手册
导入命令
INSERT INTO VALUES 一般仅用于 Demo不建议在生产环境使用。
INSERT INTO target_table (col1, col2, ...)
VALUES (val1, val2, ...), (val3, val4, ...), ...;导入配置参数
01 FE 配置
insert_load_default_timeout_second 默认值144004 小时 参数描述导入任务的超时时间单位秒。导入任务在该超时时间内未完成则会被系统取消变成 CANCELLED。
02 环境变量
insert_timeout 默认值144004 小时 参数描述INSERT INTO VALUES 作为 SQL 语句的的超时时间单位秒。
enable_insert_strict 默认值true 参数描述如果设置为 true当 INSERT INTO VALUES 遇到不合格数据时导入会失败。如果设置为 falseINSERT INTO VALUES 会忽略不合格的行只要有一条数据被正确导入导入就会成功。 解释2.1.4 版本及以前INSERT INTO VALUES 无法控制错误率只能通过该参数设置为严格检查数据质量或完全忽略错误数据。常见的数据不合格的原因有源数据列长度超过目的数据列长度、列类型不匹配、分区不匹配、列顺序不匹配等。
insert_max_filter_ratio 默认值1.0 参数描述自 2.1.5 版本。仅当 enable_insert_strict 值为 false 时生效。用于控制 INSERT INTO VALUES 时的错误容忍率。默认为 1.0 表示容忍所有错误。可以取值 0 ~ 1 之间的小数。表示当错误行数超过该比例后INSERT 任务会失败。
导入返回值
INSERT INTO VALUES 是一个 SQL 语句其返回结果会包含一个 JSON 字符串。
其中的参数如下表说明
参数名称说明Label导入作业的 label通过 INSERT INTO tbl WITH LABEL label ... 指定Status表示导入数据是否可见。如果可见显示 visible如果不可见显示 committed - visible表示导入成功数据可见 - committed该状态也表示导入已经完成只是数据可能会延迟可见无需重试 - Label Already ExistsLabel 重复需要更换 label - Fail导入失败 Err导入错误信息TxnId导入事务的 ID
INSERT 执行成功
mysql INSERT INTO test_table (user_id, name, age) VALUES (1, Emily, 25), (2, Benjamin, 35), (3, Olivia, 28), (NULL, Alexander, 60), (5, Ava, 17);
Query OK, 5 rows affected (0.05 sec)
{label:label_26eebc33411f441c_b2b286730d495e2c, status:VISIBLE, txnId:61071}其中 Query OK 表示执行成功。5 rows affected 表示总共有 5 行数据被导入。
INSERT 执行成功但是有 warning
mysql INSERT INTO test_table (user_id, name, age) VALUES (1, Emily, 25), (2, Benjamin, 35), (3, Olivia, 28), (NULL, Alexander, 60), (5, Ava, 17);
Query OK, 4 rows affected, 1 warning (0.04 sec)
{label:label_a8d99ae931194d2b_93357aac59981a18, status:VISIBLE, txnId:61068}其中 Query OK 表示执行成功。4 rows affected 表示总共有 4 行数据被导入。1 warnings 表示被过滤了 1 行。
当需要查看被过滤的行时用户可以通过 SHOW LOAD语句。返回结果中的 URL 可以用于查询错误的数据具体见后面 查看错误行 小结。
mysql SHOW LOAD WHERE labellabel_a8d99ae931194d2b_93357aac59981a18\G
*************************** 1. row ***************************JobId: 77158Label: label_a8d99ae931194d2b_93357aac59981a18State: FINISHEDProgress: Unknown id: 77158Type: INSERTEtlInfo: NULLTaskInfo: cluster:N/A; timeout(s):14400; max_filter_ratio:0.0ErrorMsg: NULLCreateTime: 2024-11-20 16:35:40EtlStartTime: 2024-11-20 16:35:40EtlFinishTime: 2024-11-20 16:35:40LoadStartTime: 2024-11-20 16:35:40
LoadFinishTime: 2024-11-20 16:35:40URL: http://10.16.10.7:8743/api/_load_error_log?file__shard_18/error_log_insert_stmt_a8d99ae931194d2b-93357aac59981a19_a8d99ae931194d2b_93357aac59981a19JobDetails: {Unfinished backends:{},ScannedRows:0,TaskNumber:0,LoadBytes:0,All backends:{},FileNumber:0,FileSize:0}TransactionId: 61068ErrorTablets: {}User: rootComment:
1 row in set (0.00 sec)INSERT 执行成功但是 status 是 committed
mysql INSERT INTO test_table (user_id, name, age) VALUES (1, Emily, 25), (2, Benjamin, 35), (3, Olivia, 28), (4, Alexander, 60), (5, Ava, 17);
Query OK, 5 rows affected (0.04 sec)
{label:label_78bf5396d9594d4d_a8d9a914af40f73d, status:COMMITTED, txnId:61074}数据不可见是一个临时状态这批数据最终是一定可见的
可以通过 SHOW TRANSACTION 语句查看这批数据的可见状态。 当返回结果中的 TransactionStatus 列变成 VISIBLE 时代表数据可见。
mysql SHOW TRANSACTION WHERE id61074\G
*************************** 1. row ***************************TransactionId: 61074Label: label_78bf5396d9594d4d_a8d9a914af40f73dCoordinator: FE: 10.16.10.7TransactionStatus: VISIBLELoadJobSourceType: INSERT_STREAMINGPrepareTime: 2024-11-20 16:51:54PreCommitTime: NULLCommitTime: 2024-11-20 16:51:54PublishTime: 2024-11-20 16:51:54FinishTime: 2024-11-20 16:51:54Reason:
ErrorReplicasCount: 0ListenerId: -1TimeoutMs: 14400000ErrMsg:
1 row in set (0.00 sec)INSERT 执行失败
执行失败表示没有任何数据被成功导入并返回如下
mysql INSERT INTO test_table (user_id, name, age) VALUES (1, Emily, 25), (2, Benjamin, 35), (3, Olivia, 28), (NULL, Alexander, 60), (5, Ava, 17);
ERROR 1105 (HY000): errCode 2, detailMessage Insert has too many filtered data 1/5 insert_max_filter_ratio is 0.100000. url: http://10.16.10.7:8747/api/_load_error_log?file__shard_22/error_log_insert_stmt_5fafe6663e1a45e0-a666c1722ffc8c55_5fafe6663e1a45e0_a666c1722ffc8c55其中 ERROR 1105 (HY000): errCode 2, detailMessage Insert has too many filtered data 1/5 insert_max_filter_ratio is 0.100000. 显示失败原因。后面的 url 可以用于查询错误的数据具体见后面 查看错误行 小结。
导入最佳实践
数据量
INSERT INTO VALUES 通常用于测试和演示不建议用于导入大量数据的场景。
查看错误行
当 INSERT INTO 返回结果中提供了 url 字段时可以通过以下命令查看错误行
SHOW LOAD WARNINGS ON url;示例
mysql SHOW LOAD WARNINGS ON http://10.16.10.7:8743/api/_load_error_log?file__shard_18/error_log_insert_stmt_a8d99ae931194d2b-93357aac59981a19_a8d99ae931194d2b_93357aac59981a19\G
*************************** 1. row ***************************JobId: -1Label: NULL
ErrorMsgDetail: Reason: column_name[user_id], null value for not null column, typeBIGINT. src line [];
1 row in set (0.00 sec)常见的错误的原因有源数据列长度超过目的数据列长度、列类型不匹配、分区不匹配、列顺序不匹配等。
可以通过环境变量 enable_insert_strict来控制 INSERT INTO 是否忽略错误行。 文章转载自: http://www.morning.bncrx.cn.gov.cn.bncrx.cn http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.ylqrc.cn.gov.cn.ylqrc.cn http://www.morning.drbwh.cn.gov.cn.drbwh.cn http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn http://www.morning.mdgpp.cn.gov.cn.mdgpp.cn http://www.morning.brbnc.cn.gov.cn.brbnc.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.lgqdl.cn.gov.cn.lgqdl.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.zgdnz.cn.gov.cn.zgdnz.cn http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.kmbgl.cn.gov.cn.kmbgl.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.yfphk.cn.gov.cn.yfphk.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.youyouling.cn.gov.cn.youyouling.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn http://www.morning.gqjwz.cn.gov.cn.gqjwz.cn http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn http://www.morning.kqylg.cn.gov.cn.kqylg.cn http://www.morning.wglhz.cn.gov.cn.wglhz.cn http://www.morning.yrjkp.cn.gov.cn.yrjkp.cn http://www.morning.cszbj.cn.gov.cn.cszbj.cn http://www.morning.djlxz.cn.gov.cn.djlxz.cn http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn http://www.morning.ctfwl.cn.gov.cn.ctfwl.cn http://www.morning.lmrjn.cn.gov.cn.lmrjn.cn http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.lqjlg.cn.gov.cn.lqjlg.cn http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn http://www.morning.srrzb.cn.gov.cn.srrzb.cn http://www.morning.china-cj.com.gov.cn.china-cj.com http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn http://www.morning.qhydkj.com.gov.cn.qhydkj.com http://www.morning.syrzl.cn.gov.cn.syrzl.cn http://www.morning.qfmcm.cn.gov.cn.qfmcm.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.pbygt.cn.gov.cn.pbygt.cn http://www.morning.hhpbj.cn.gov.cn.hhpbj.cn http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn http://www.morning.msmtf.cn.gov.cn.msmtf.cn http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.bfbl.cn.gov.cn.bfbl.cn http://www.morning.jrksk.cn.gov.cn.jrksk.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.dbphz.cn.gov.cn.dbphz.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.jxrpn.cn.gov.cn.jxrpn.cn http://www.morning.xqbgm.cn.gov.cn.xqbgm.cn http://www.morning.llqky.cn.gov.cn.llqky.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.nxkyr.cn.gov.cn.nxkyr.cn http://www.morning.chbcj.cn.gov.cn.chbcj.cn http://www.morning.pyswr.cn.gov.cn.pyswr.cn http://www.morning.ssjee.cn.gov.cn.ssjee.cn http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.hctgn.cn.gov.cn.hctgn.cn http://www.morning.sdamsm.com.gov.cn.sdamsm.com http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.hfrbt.cn.gov.cn.hfrbt.cn http://www.morning.ykrck.cn.gov.cn.ykrck.cn