跳到主要内容

数据导入

NineData 支持数据导入功能,支持将包含 SQL 脚本或数据内容的文件导入至目标数据库,最大支持 5 GB 的文件。

背景信息

NineData 的 SQL 任务支持最基本的 SQL 脚本操作,为少量 SQL 的批量执行提供了方便的途径。对于大量数据的导入操作,就需要使用其他高效的工具来简化这个过程。为了解决这个问题, NineData 提供了强大的数据导入功能,帮助用户轻松地将大量的数据从文件中导入到目标数据库中。

功能介绍

NineData 的数据导入功能可以帮助用户将包含大量数据的文件导入到目标数据库中。具体的功能详情如下:

  • 支持的导入类型以及对应的文件格式

    导入类型文件格式
    SQLZIP、SQL、TXT
    CSVZIP、CSV
    EXCELZIP、XLS、XLSX
  • 支持的最大文件大小:5 GB

  • 支持的字符集:UTF-8、GBK

  • 数据安全性保障组织模式组织模式支持对组织下的每个用户分配不同的角色和资源管理权限,适用于同一组织下多用户协同开发,在保证数据安全的同时,提升整体生产效率。下,支持对数据进行严格的权限控制,数据导入需经过审批流程,确保数据的安全。

    • 审批流程(审批人):默认状态下,必须通过系统管理员审批,才可以执行数据导入任务,支持管理员角色对审批流程进行按需调整。
    • 审批流程(执行人):支持配置导入任务在通过审批后的执行人,可配置为系统执行申请人执行审批人执行(审批流程的最后一个审批人)。
    • 开发规范:导入的数据文件(SQL)中如果包含多种导入语句,为保证数据库的安全,默认状态下仅执行 INSERT 语句,支持管理员角色对开发规范进行按需调整。
    • 执行时间:导入任务的审批通过后,执行人可选择立即执行定时执行,满足有特定执行时间需求的场景。

使用场景

NineData 的数据导入功能可以在以下场景下发挥重要作用:

  • 外部来源数据导入:在企业需要从外部来源获取数据的场景下,NineData 数据导入功能可以帮助用户将这些外部来源数据导入到目标数据库中,以便后续处理和管理。例如,一些电商平台需要从供应商的系统中导入产品数据,NineData 数据导入功能可以帮助他们快速地将数据导入到数据库中。
  • 数据初始化:在新建数据库或者重新设置数据库结构时,需要将初始数据导入数据库中,NineData 数据导入功能可以帮助用户将初始数据从文件中导入到目标数据库中,从而快速初始化数据库。
  • 大批量数据更新:需要对数据库执行大规模数据更新的场景。
    • 例 1:企业需要将大量的平台订单数据导入到企业数据库,方便进行存储和分析。
    • 例 2:企业需要将重复数据或无效数据删除或合并,或者需要对数据进行格式化或转换。
    • 例 3:企业需要批量更新产品价格、库存或其他关键业务数据。
    • 例 4:企业需要更新数据的时间戳或数据的格式用于故障处理。

注意事项

在商业化版本下(),请确保您的包年包月订阅未过期,否则将无法正常使用数据库 DevOps 服务。您可以在 NineData 控制台页面右上方快速查看剩余配额以及到期时间。check_quota

使用限制

  • 非 SQL 类型的数据文件必须导入到指定的一张表中,并且该表中存在数据文件中的所有列,否则导入任务将失败。
  • 导入不包含结构的 SQL 类型文件时,请确保文件中每个语句对应的表已存在于目标库中。
  • 当前数据导入不支持规范校验(预检查),需谨慎使用。
  • 当前支持 MySQL、SQL Server、Oracle、OceanBase Oracle、DB2、达梦数据源。

提交任务

前提条件

  • 已有目标数据源的库表权限。如没有可以先申请。更多信息,请参见权限申请与审批
  • 已有的模块权限(默认情况下都具备),如果您看不到该入口,请联系您的系统管理员。
  • 已有权限。如何申请该权限,请参见权限申请与审批

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,单击页面右上角的

  4. 页面,按照下表进行配置。

    参数
    说明
    输入数据导入任务的名称,仅在组织模式下需要输入。为了方便后续查找和管理,请尽量使用有意义的名称。最多支持 64 个字符。
    选择数据导入任务的目标数据源和库|Schema。不为 SQL 时,还需要选择具体的导入目标表(SQL Server、Oracle、OceanBase Oracle、DB2、达梦 在选择导入目标表之前还需要选择对应的 Schema)。
    说明:如果您没有该数据源或库的权限,页面将弹出提示,您可以单击提示框中的进行权限申请。更多信息,请参见权限申请与审批
    选择数据的导入类型,支持如下三种:
    • SQL:包含一系列 SQL 语句的文件,通过 SQL 回放的方式将数据导入 MySQL 数据库。
    • CSV:文本文件格式,每行代表一条记录,通常情况下每个字段用逗号分隔。
    • EXCEL:Excel 文件的格式,每个表格单元格包含一个字段值。
    单击按钮,选择需要导入数据库的数据文件。支持上传包含多个数据文件的 .zip 压缩包,实现批量上传。
    说明不是 SQL 的情况下,请确保数据文件中的列名及列数量和导入目标表中的一致,或者在下方的中手动指定字段名,否则可能会导入失败。
    选择导入数据文件的编码:
    • (默认):系统自动识别数据文件的编码。
    • UTF-8:可变长度的 Unicode 字符编码。
    • GBK:中文编码,从 GB2312 编码基础上扩展而来。
    输入导入的原因,仅在组织模式下需要输入,用于审批流程。
    开启后系统将不对任务进行规范预审,仅对其数据源进行权限校验。且该模式会将多个 SQL 语句合并成一个批处理语句进行提交,可减少网络开销,提高导入性能,当前版本固定开启该模式。
    当前导入任务审批通过后的任务执行人,仅在组织模式下需要选择。
    说明列表中的可选项取决于如下两种情况:
    • 当前数据源已配置开发规范:列表中的选项基于当前规范中配置的规则。该规则位于 页签,如何配置开发规范,请参见编辑规范
    • 当前数据源未配置开发规范:列表中的可选项为对当前数据源有权限的用户。更多关于授权的说明,请参见配置用户权限
    单击可以展开配置项。
    MySQL
    • CSVEXCEL 时可选):
      • (默认选中):选择数据文件的首行是否为字段名,请根据您导入文件的实际情况勾选或取消。
      • (仅 CSV 可选且默认选中):选择数据文件中每个字段的分隔符,请根据您导入文件的实际情况选择。
      • :该选项支持您自行选择将数据文件中的数据导入到目标表的哪个(些)列,支持多选。当选择多个列时,系统将按照用户选择的列名排序顺序进行导入。此功能适用于数据文件和目标表的列名不一致或者列数不同的情况。
    • CSVEXCEL 时可选):
      • Insert(默认):将数据插入到表中,如果表中已存在相同的行,则会插入失败并提示错误信息。
      • Insert Ignore:将数据插入到表中,如果表中已存在相同的行,则插入操作将跳过该行,而不进行任何更改。
      • Replace Into:将数据插入到表中,如果表中已存在相同的行,则会直接进行覆盖。
      警告Replace Into 可能导致表中的数据被覆盖修改,请谨慎操作。
      • :选中该选项,则不检查外键约束的限制条件。
    SQL Server
    • CSVEXCEL 时可选):
      • (默认选中):选择数据文件的首行是否为字段名,请根据您导入文件的实际情况勾选或取消。
      • (仅 CSV 可选且默认选中):选择数据文件中每个字段的分隔符,请根据您导入文件的实际情况选择。
      • :该选项支持您自行选择将数据文件中的数据导入到目标表的哪个(些)列,支持多选。当选择多个列时,系统将按照用户选择的列名排序顺序进行导入。此功能适用于数据文件和目标表的列名不一致或者列数不同的情况。
    • CSVEXCEL 时展示):
      • Insert(固定):将数据插入到表中,如果表中已存在相同的行,则会插入失败并提示错误信息。
      • :选中该选项,则不检查外键约束的限制条件。
    Oracle|Oceanbase Oracle
    CSVEXCEL 时可选):
    • (默认选中):选择数据文件的首行是否为字段名,请根据您导入文件的实际情况勾选或取消。
    • (仅 CSV 可选且默认选中):选择数据文件中每个字段的分隔符,请根据您导入文件的实际情况选择。
    • :该选项支持您自行选择将数据文件中的数据导入到目标表的哪个(些)列,支持多选。当选择多个列时,系统将按照用户选择的列名排序顺序进行导入。此功能适用于数据文件和目标表的列名不一致或者列数不同的情况。
    DB2、达梦
    CSVEXCEL 时可选):
    • (默认选中):选择数据文件的首行是否为字段名,请根据您导入文件的实际情况勾选或取消。
    • (仅 CSV 可选且默认选中):选择数据文件中每个字段的分隔符,请根据您导入文件的实际情况选择。
    • :该选项支持您自行选择将数据文件中的数据导入到目标表的哪个(些)列,支持多选。当选择多个列时,系统将按照用户选择的列名排序顺序进行导入。此功能适用于数据文件和目标表的列名不一致或者列数不同的情况。
  5. 单击,自动跳转至页面。

  6. 节点,等待任务状态更改为,然后单击页面右上角的,进入节点。在节点中,您还可以执行如下操作:

    • 单击页面右上角的refresh图标,刷新任务状态。
    • 单击页面右上角的再次执行检查。
    • 单击页面右上角的,直接撤回任务或重新编辑任务并提交。
    • 单击页面右上角的,复制出一个配置相同的新任务。
    提示
    • 会自动对导入任务进行检查,包括语法错误检查(SQL 的场景)、预估行数检查、库权限检查。如果过程中发现问题,会提示具体信息,方便您进行定位和修改。
    • 下会自动跳过该节点,来到节点,并且任务状态变更为
    • 如果该数据源未配置审批流程,则任务自动跳过节点,来到节点,并且任务状态变更为,您可以直接执行步骤 9
  7. 在页面右上角单击,在弹出的窗口中选择流程审批人员,单击

    提示
    • 根据审批流程配置的不同,此处需要选择的审批人员数量不同,请根据实际情况选择。
    • 如果当前审批流程中开启了,则此处将显示,您无需手动指定审批人,所有具备审批当前工单的人员均会收到审批提醒并支持对该工单进行审批。

  8. 任务状态变更为,在审批通过之前,您可以进行如下操作:

    • 单击页面右上角的refresh图标,刷新任务状态。
    • 单击页面右上角的,直接撤回任务或重新编辑任务并提交。
    • 单击页面右上角的,更改该任务的审批人。
    • 单击页面右上角的,复制出一个配置相同的新任务。
  9. 任务状态变更为,任务的单击页面右上角的,选择,并单击

    • :马上执行数据导入任务。
    • :选择一个时间执行数据导入任务。
  10. 等待任务状态变更为即可。

审批任务

前提条件

  • 已创建或加入组织。更多信息,请参见管理组织
  • NineData 控制台处于组织模式。如何从个人模式切换组织模式,请参见切换到组织
  • 当前数据导入任务的状态为
  • 您是或当前数据导入任务的

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 页面,找到目标任务,单击任务 ID 或任务右侧列的

    提示

    您也可以将鼠标放置在页面上方的notification图标上,在页签中单击目标任务。

  4. 页面,审批工单内容,根据实际情况选择

    操作
    说明
    将工单转交给其他用户审批。
    批准申请,单击后,您可以按需输入,并单击
    驳回申请,单击后,您还需要输入,并单击