https://docs.pingcap.com/zh/tidb/stable/tidb-lightning-configuration

本文档介绍如何编写逻辑导入模式的配置文件,如何进行性能调优等内容。

配置及使用

可以通过以下配置文件使用逻辑导入模式执行数据导入:

[lightning] # 日志 level = "info" file = "tidb-lightning.log" max-size = 128 # MB max-days = 28 max-backups = 14 # 启动之前检查集群是否满足最低需求。 check-requirements = true [mydumper] # 本地源数据目录或外部存储 URI。关于外部存储 URI 详情可参考 https://docs.pingcap.com/zh/tidb/v6.6/backup-and-restore-storages#uri-%E6%A0%BC%E5%BC%8F。 data-source-dir = "/data/my_database" [tikv-importer] # 导入模式配置,设为 tidb 即使用逻辑导入模式 backend = "tidb" # 逻辑导入模式插入重复数据时执行的操作。 # - replace:新数据替代已有数据 # - ignore:保留已有数据,忽略新数据 # - error:中止导入并报错 on-duplicate = "replace" [tidb] # 目标集群的信息。tidb-server 的地址,填一个即可。 host = "172.16.31.1" port = 4000 user = "root" # 设置连接 TiDB 的密码,可为明文或 Base64 编码。 password = "" # tidb-lightning 引用了 TiDB 库,并生成产生一些日志。 # 设置 TiDB 库的日志等级。 log-level = "error"

TiDB Lightning 的完整配置文件可参考完整配置及命令行参数

冲突数据检测

冲突数据,即两条或两条以上的记录存在主键或唯一键列数据重复的情况。当数据源中的记录存在冲突数据,将导致该表真实总行数和使用唯一索引查询的总行数不一致的情况。TiDB Lightning 的逻辑导入模式通过 on-duplicate 配置冲突数据检测的策略,TiDB Lightning 根据策略使用不同的 SQL 语句进行插入。

策略 冲突时默认行为 对应 SQL 语句
replace 新数据替代旧数据 REPLACE INTO ...
ignore 保留旧数据,忽略新数据 INSERT IGNORE INTO ...
error 中止导入 INSERT INTO ...

性能调优

  • TiDB Lightning 的逻辑导入模式性能很大程度上取决于目标 TiDB 集群的写入性能,当遇到性能瓶颈时可参考 TiDB 相关性能优化文档

  • 如果发现目标 TiDB 集群的的写入尚未达到瓶颈,可以考虑增加 Lightning 配置中 region-concurrency 的值。region-concurrency 默认值为 CPU 核数,其含义在物理导入模式和逻辑导入模式下有所不同,逻辑导入模式的 region-concurrency 表示写入并发数。配置示例:

    [lightning] region-concurrency = 32
  • 调整目标 TiDB 集群的 raftstore.apply-pool-size 和 raftstore.store-pool-size 参数也可能提升导入速度。

[转帖]tidb-lightning 逻辑模式导入的更多相关文章

  1. TiDB Lightning导入超大型txt文件实践

    背景 TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具.其实数据在不同系统的流转当中,有一种格 ...

  2. 探索TiDB Lightning的源码来解决发现的bug

    背景 上一篇<记一次简单的Oracle离线数据迁移至TiDB过程>说到在使用Lightning导入csv文件到TiDB的时候发现了一个bug,是这样一个过程. Oracle源库中表名都是大 ...

  3. [转帖] sqlserver CAL 授权模式下 只能够有20个core的使用问题

    http://www.cnblogs.com/diabloxl/p/3623640.html?utm_source=tuicool&utm_medium=referral 公司这边性能组老师进 ...

  4. 【TIDB】4、业界使用情况

    一.小米 1.背景 小米关系型存储数据库首选 MySQL,单机 2.6T 磁盘.由于小米手机销量的快速上升和 MIUI 负一屏用户量的快速增加,导致负一屏快递业务数据的数据量增长非常快, 每天的读写量 ...

  5. 记一次简单的Oracle离线数据迁移至TiDB过程

    背景 最近在支持一个从Oracle转TiDB的项目,为方便应用端兼容性测试需要把Oracle测试环境的库表结构和数据同步到TiDB中,由于数据量并不大,所以怎么方便怎么来,这里使用CSV导出导入的方式 ...

  6. Oracle逻辑备份与恢复

      1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMP ...

  7. Odoo 12 开发手册指南(八)—— 业务逻辑 – 业务流程的支持

    在前面的文章中,我们学习了模型层.如何创建应用数据结构以及如何使用 ORM API 来存储查看数据.本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式. 本文的主要内容有: 以文件 ...

  8. exp/expdp 与 imp/impdp命令导入导出数据库详解

    一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文 ...

  9. Oracle 数据库导入与出

    Oracle 数据库导入与出 导出( EXPORT )是用 EXP 将数据库部分或全对象的结构和导出 . 导入( 导入( IMPORT )是用 )是用 IMP IMP将 OS 文件中的对象结构和数据装 ...

  10. imp导入备份时报:无法转换为环境字符集句柄

    imp导入备份时报:无法转换为环境字符集句柄 ... 在imp 还原数据库的时候出现问题如下: 这个问题是 你用 expdp导出的 却用客户端的 imp 导入:换成impdp导入即可. 当用impdp ...

随机推荐

  1. 元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata

    大家好,我是独孤风.元数据管理平台层出不穷,但目前主流的还是Atlas.Datahub.Openmetadata三家,那么我们该如何选择呢? 本文就带大家对比一下.要了解元数据管理平台,先要从架构说起 ...

  2. 如何抑制特定 clang-tidy 警告

    ️ clang-tidy 的规则能够帮助检查潜在的问题,不要盲目抑制警告! 可以通过添加 NOLINT, NOLINTNEXTLINE, 以及 NOLINTBEGIN - NOLINTEND 注释来抑 ...

  3. 21、Scaffold属性 FloatingActionButton实现类似闲鱼App底 部导航凸起按钮

    FloatingActionButton详解 FloatingActionButton简称FAB ,可以实现浮动按钮,也可以实现类似闲鱼app的底部凸起导航   实现类似闲鱼App底部导航凸起按钮 c ...

  4. mac 编译php 7.2+扩展编译 的坑史(不是swoole的坑),php的一个坑,这个坑还没填满,问题根源还没有找到 !

    目前网上找到的文章全是php 7.1,但是brew己经没有7.1了,最新是7.2,这让我怀疑是不是我的版本问题,导致swoole编译时总是编译不过去.后来发现任何扩展都编不过去,提示: Configu ...

  5. EFCore CodeFirst DBFirst Demo

    1.简单Demo单独记录一下使用过程,Nuget对应.Net环境版本数据库包.EF Core 的 PMC 工具包. 2.CodeFirst 包管理器控制台(PMC)输入命令,迁移创建数据库: Add- ...

  6. 【华为云技术分享】LwM2M协议的学习与分享

    [摘要] 本文主要对于LwM2M协议进行了简单的介绍,包括协议的体系架构以及特性.对象.资源.接口的定义等,希望对你有所帮助. 1协议简介 LwM2M(Lightweight Machine-To-M ...

  7. 扎根CNCF社区贡献五年是怎样的体验?听听华为云原生开源团队的负责人怎么说

    摘要:本月我们要重点介绍王泽锋(Kevin Wang),他是 CNCF 社区的长期贡献者,华为云原生开源团队的负责人,KubeEdge 和 Volcano 项目的联合创始人.Kevin 回答了几个关于 ...

  8. 一次事故,我对MySQL时间戳存char(10)还是int(10)有了全新的认识

    摘要:char类型字段想走索引的话,必须用引号括起来.如果是时间戳等类型的纯数字,建议还是存为int型吧. 本文分享自华为云社区<一次事故,我对MySql时间戳存char(10)还是int(10 ...

  9. Solon 小技巧收集 - 页面跳转(重定向)

    @XMapping("/") public void jump(XContext ctx){ ctx.redirect("http://www.noear.org&quo ...

  10. 利用 Solon-web 框架写一个 Hello World

    Solon 项目的开源地址: https://gitee.com/noear/solon 最近看了不少别人写的各种框架的 Hello world 示例,有些看起来,真的很复杂. 今天,我们用号称简单到 ...