TiDB Lightning 使用前提

    TiDB Lightning 导入数据时,根据导入方式和启用特性等,需要下游数据库用户具备不同的权限,可参考下表:

    目标 TiKV 集群必须有足够空间接收新导入的数据。除了标准硬件配置以外,目标 TiKV 集群的总存储空间必须大于 数据源大小 × × 2。例如集群默认使用 3 副本,那么总存储空间需为数据源大小的 6 倍以上。公式中的 2 倍可能难以理解,其依据是以下因素的估算空间占用:

    • 索引会占据额外的空间
    • RocksDB 的空间放大效应

    目前无法精确计算 Dumpling 从 MySQL 导出的数据大小,但你可以用下面 SQL 语句统计信息表的 data_length 字段估算数据量:

    统计最大单表,单位 MiB,注意修改 ${schema_name}

      操作系统:本文档示例使用的是若干新的、纯净版 CentOS 7 实例,你可以在本地虚拟化一台主机,或在供应商提供的平台上部署一台小型的云虚拟主机。TiDB Lightning 运行过程中,默认会占满 CPU,建议单独部署在一台主机上。如果条件不允许,你可以将 TiDB Lightning 和其他组件(比如tikv-server)部署在同一台机器上,然后设置 配置项的值为逻辑 CPU 数的 75%,以限制 TiDB Lightning 对 CPU 资源的使用。

      内存和 CPU

      • Local-backend:该模式对 CPU 和内存的需求都比较高,建议为 TiDB Lightning 分配 32 核以上的 CPU 和 64 GiB 以上内存。
      • TiDB-backend:该模式的主要性能瓶颈是 TiDB,建议分配 4 核 CPU 和 8GB 内存。如果实际导入时,发现 TiDB 集群并没有达到写入的上限,可以适当调大 region-concurrency 配置参数。

      存储空间:配置项 设置排序的键值对的临时存放地址,目标路径必须是一个空目录,目录空间须大于待导入数据集的大小。建议与 data-source-dir 使用不同的存储设备,独占 IO 会获得更好的导入性能,且建议优先考虑配置闪存等高性能存储介质。