离线导入

当你的数据在数据源已经准备完毕,ByteHouse 支持通过数据导入来进行数据加载。

当前 ByteHouse 支持从 S3 和 Hive 中进行离线导入。

支持的文件格式

  • CSV
  • JSON
  • Arvo
  • Parquet
  • Excel (xls)

创建离线导入任务

不同的数据源类型有会略有差异,但一般来说都需要4个步骤:

1216

首先,从数据导入页,选择 新建导入任务,然后选择相应的数据源。

2830

步骤1:选择数据源

数据源是指包含待导入数据的表(Hive)或文件夹/路径(S3)。连接时通常需要提供给存储系统一些信息,包括校验凭证、集群地址等。我们使用数据源一词来存储此类信息。您的连接信息已加密,即使是我们也无法读取。一旦存储,您就无法检索此类信息,只能更新或删除信息。每个连接都需要确保在账户之间也是唯一名称。因为除了源类型和连接名称之外,所有的细节都是隐藏的,所以您应该为您的连接设置一个名称,以帮助您直观地了解导入任务所需的数据源。

请根据您的数据源类型阅读下文中对应的部分。

AWS S3

创建 S3 连接

S3 连接只包含访问密钥和秘密密钥,从中我们可以确定凭证具有(读取)访问权限的 S3 桶。

1280
选择 S3 文件夹

我们提供了方便您选择S3文件夹的功能,也可以支持手动输入。

注意:文件名中的文件用于分析数据源模式,当导入开始时,系统会询问您要导入的文件。

Hive

创建 Hive 连接
1280

支持的身份验证模式:

  • NOSASL
  • NONE
  • LDAP
    支持的传输模式:
  • BINARY
  • HTTP
选择 Hive 表
1280

步骤2: 解析 Schema

我们提供 Schema 解析功能,以帮助您检索数据 Schema。该功能的工作原理是,对于有 Schema 的格式(如avro、parquet、hive),从元数据中读取 Schema;对于没有 Schema 的格式(如csv、json),则从前几百条记录中进行推断。如果源数据没有表头,则设列名为_c0_cN格式。

该功能只是为了提供便捷解析的能力,可能存在一定解析错误的情况,建议您在处理之前再进行检查。

1053

步骤3:选择目标表

您可以导入到现有表或创建新表。如果您选择创建新表,用户界面将类似于数据库管理中的创建表,事实上,我们使用同一个后台处理这两种情况。区别在于此界面存在字段映射设置,您可以逐个指定从源列到目标列的映射。我们通过比较列名来预填充映射,但建议您根据需要进行检查和自定义。

1280

步骤4:选择加载类型、任务名称并确认
每个任务都需要定义一个全局唯一的名称和可选描述。
加载类型有两种,说明了如何将数据加载到目标表:

  • 全量加载:用最新的数据替换整个目标表。
  • 增量加载:根据表的分区,将新批次添加的数据加载到现有表。备注:ByteHouse将替换现有分区,而非进行合并。
1280

请注意:如果你选择新建一个同步表,则该表和导入任务会依次进行创建,因此可能会出现导入任务创建失败但是表创建成功的场景。如果您遇到了类似情况,请退回至第三步,选择导入至已有表中进行导入。

查看离线导入任务

我们在数据导入页面上会显示两个列表:导入任务和执行计划列表,用以展示了导入任务和执行计划的全局视图,包括名称、类型、状态、每个导入任务和执行计划的导入行数。单击任意导入任务和执行计划,可分别进入详细信息页面。

1280

操作离线导入任务

成功创建导入任务后,您将被重定向到任务详细信息页面。您也可以通过点击对应任务进入该页面。在该页面上,您可以深入了解各个导入任务的具体信息,如同步历史、导入图、配置等。你也可以在这里操作任务。

开始/停止导入任务

导入任务在创建后不会自动启动,如果需要启动它,您可以单击右上角的开始按钮。

1280

如果导入任务处于运行中,那么开始 按键会被替换为 停止

启动 S3 导入任务时,当前在单个存储桶中多选文件进行导入,并且支持模糊搜索进行查找。导入之前,需要确保多文件的 table schema 和文件类型一致。单次导入文件最多为 5 个。

2286

此外,支持开启通配搜索,匹配并导入多个文件

  • 支持星号(*)匹配零个或多个任意字符
  • 支持问号(?)匹配不多于问号个数的任意字符
  • 支持方括号([])匹配在此范围内的任意字符

编辑导入任务

在很多场景下,可能都会需要编辑修改任务,例如 Schema 变更,映射关系修改等。编辑操作步骤和新建导入任务比较相似,您可以通过在展开的菜单列表中选择编辑

1280