DolphinDB数据导入教程

2022-03-29 00:00:00 数据 函数 文件 分区 导入

DolphinDB提供了多种灵活的数据导入方法,来帮助用户方便的把海量数据从多个数据源导入。具体有如下4种途径:

  • 通过文本文件导入
  • 通过二进制文件导入
  • 通过HDF5接口导入
  • 通过ODBC接口导入

1. DolphinDB数据库基本概念和特点

本章中多处使用到DolphinDB的数据库和表的概念,所以这里首先做一个介绍。

在DolphinDB里数据以结构化数据表的方式保存。数据表按存储介质可以分为:

  • 内存表:数据保存在内存中,存取速度快,但是若节点关闭就会丢失数据。
  • 本地磁盘表:数据保存在本地磁盘上,即使节点关闭,也不会丢失数据。可以方便的把数据从磁盘加载到内存。
  • 分布式表:数据分布在不同的节点的磁盘上,通过DolphinDB的分布式计算引擎,逻辑上仍然可以像本地表一样做统一查询。

按是否分区可以分为:

  • 普通表(未分区表)
  • 分区表

在传统的数据库系统,分区是针对数据表定义的,就是同一个数据库里的每个数据表都可以有自己的分区定义;而DolphinDB的分区是针对数据库定义的,也就是说同一个数据库下的数据表只能使用同一种分区机制,这也意味着如果两张表要使用不同的分区机制,那么它们是不能放在一个数据库下的。


2. 通过文本文件导入

通过文件进行数据中转是比较通用化的一种数据迁移方式,方式简单易操作。DolphinDB提供了以下三个函数来载入文本文件:

  • loadText: 将文本文件以 DolphinDB 数据表的形式读取到内存中。
  • ploadText: 将数据文件作为分区表并行加载到内存中。与loadText函数相比,速度更快。
  • loadTextEx: 把数据文件转换为DolphinDB数据库中的分布式表,然后将表的元数据加载到内存中。

以下为将candle_201801.csv导入DolphinDB来演示loadTextloadTextEx的用法。

2.1 loadText

loadText函数有三个参数,个参数filename是文件名,第二个参数delimiter用于指定不同字段的分隔符,默认是",",第三个参数schema是用来指定导入后表的每个字段的数据类型,schema参数是一个数据表,格式示例如下:

首先导入数据:

dataFilePath = "/home/data/candle_201801.csv"
tmpTB = loadText(dataFilePath);

相关文章