数据导入方法

DolphinDB 针对各种类型的数据文件和数据源提供了便捷的导入导出工具,利用这些工具,可以完成即时或定时的数据加载、清洗和导入导出任务。

内置函数

DolphinDB 提供了多种内置函数进行文本文件、二进制、JSON 文件的数据导入与导出。在数据导入的过程中,用户通过对相关的参数进行设置,可进行数据类型匹配等预处理。

文本文件导入

函数 说明
loadText 将文本文件导入为内存表。
ploadText 将文本文件并行导入为分区内存表,与 loadText 函数相比速度更快。ploadText 充分利用了多核 CPU 来并行载入文件,可快速载入 16MB 或以上的较大文件。
loadTextEx 将文本文件导入数据库中,包括分布式数据库或内存数据库。该函数将文本文件分为许多批次逐步载入内存并落盘到数据库,避免文本文件过大时可能出现内存不足的问题。支持通过传入自定义函数,在入库前对数据进行预处理。
textChunkDS 将文本文件划分为多个小数据源,并将划分后的数据通过分布式计算框架下的 map-reduce 函数导入数据库。

二进制、JSON 文件导入

导入类型 函数 说明
二进制文件 readRecord! 将二进制文件转换为 DolphinDB 数据对象。
loadRecord 将二进制文件转换为 DolphinDB 数据对象,并支持处理字符串类型的数据。
JSON 文件 fromJson, fromStdJson 将 JSON 格式的字符串转换为 DolphinDB 对象。

数据导出

导出类型 函数 说明
文本文件 saveText 可以将任意变量或表对象保存为文本文件。
saveTextFile 通过追加或覆盖将字符串保存到文本文件中。
二进制文件 writeRecord 将 DolphinDB 对象(例如表或元组)转换为二进制文件并返回向文件写入的行数。
saveAsNpy 将 DolphinDB 向量或矩阵保存为 NumPy 支持的 .npy 二进制文件。
JSON 文件 toJson, toStdJson 将 DolphinDB 对象转换为 JSON 字符串。

插件及工具

DolphinDB 还提供了一系列用于数据导入/迁移的插件。

数据库插件

使用数据库迁移插件的主要优点在于可以直接调用现成的接口,脚本简单易上手。DolphinDB 提供了一系列专门针对第三方数据库的数据迁移插件,如对 MySQL,kdb+,MongoDB 有专门的插件, SQL Server,Oracle,ClickHouse,SQLite 等可通过 ODBC 插件进行连接和导入。

插件名 功能描述
odbc 通过 ODBC 读取其他数据源的数据,包括来自 MySQL, Oracle, SQL Server 等大多数数据库的数据
mysql 连接 MySQL 并读取数据
HBase 通过 Thrift 连接 HBase,读取数据
kdb 通过连接 kdb+ 数据库或直接读取磁盘上的 kdb+ 数据文件以导入数据
mongodb 连接 MongoDB,读取数据

数据文件读取插件

通过插件从数据文件中导入数据的优点在于操作简单、稳定,适合大量数据迁移。

插件名 功能描述
Arrow 序列化支持 Apache Arrow 格式
aws 读取和写入 AWS S3 的网络文件
feather 读取、写入 Apache Feather 文件
hdfs 读取和写入 Hadoop 的 HDFS 文件
hdf5 读取和写入 HDF5 文件
mat 读取、写入 MATLAB 文件
mseed 读取和写入 miniSEED 文件
orc 读取、写入 ORC 文件
parquet 读取和写入 Apache Parquet 文件
zip 解压 ZIP 文件
zlib 压缩、解压 gz 文件

消息中间件、行情插件

通过对接消息中间件及行情服务的插件,可以将实时数据写入 DolphinDB。

插件 类别 功能描述
zmq

消息发布和订阅

发送、接收 ZeroMQ 消息
mqtt 发布和订阅 MQTT 消息
kafka 发布或订阅 Kafka 流服务
insight

行情接收

接收华泰 Insight 实时行情
AmdQuote 接收华锐 Amd 实时行情数据
nsq 读取恒生 NSQ 实时行情数据

其他导入工具

DolphinDB 也提供了基于离线数据同步工具 DataX 的 dolphindbwriter 插件,可满足从不同数据源向 DolphinDB 导入数据、同步增量数据的功能,具有可拓展、通用性强的优势。

此外,用户也可通过 DolphinDB C++ API,Python API,Java API 等 API 所提供的接口导入数据,详情请见相关 API 文档。