海豚怎么导入mysql,简单易懂教程-瞬间学会DolphinDB数据导入

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

通过二进制文件导入

通过HDF5接口导入

通过ODBC接口导入

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

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

在DolphinDB里数据以结构化数据表的方式保存。数据表按存储介质可以分为:内存表:数据保存在内存中,存取速度最快,但是若节点关闭就会丢失数据。

本地磁盘表:数据保存在本地磁盘上,即使节点关闭,也不会丢失数据。可以方便的把数据从磁盘加载到内存。

分布式表:数据分布在不同的节点的磁盘上,通过DolphinDB的分布式计算引擎,逻辑上仍然可以像本地表一样做统一查询。

按是否分区可以分为:普通表(未分区表)

分区表

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

2. 通过文本文件导入

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

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

2.1 loadText

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

d81c47855a29de2c68a0b35a14617ed5.png

首先导入数据:dataFilePath = "/home/data/candle_201801.csv"

tmpTB = loadText(dataFilePath);

DolphinDB在导入数据的同时,随机提取一部分的行以确定各列数据类型,所以对大多数文本文件无须手动指定各列的数据类型,非常方便。但有时系统自动识别的数据类型并不符合预期或需求,比如导入数据的volume列被识别为INT类型, 而需要的volume类型是LONG类型,这时就需要使用一个数据类型表作为schema参数。例如可使用如下脚本构建数据类型表:nameCol = `symbol`exchange`cycle`tradingDay`date`time`open`high`low`close`volume`turnover`unixTime

typeCol = `SYMBOL`SYMBOL`INT`DATE`DATE`INT`DOUBLE`DOUBLE`DOUBLE`DOUBLE`INT`DOUBLE`LONG

schemaTb = table(nameCol as name,typeCol as type);

当表字段非常多的时候,写这样一个脚本费时费力,为了简化操作,DolphinDB提供了

整合上述方法,可使用如下脚本以导入数据:dataFilePath = "/home/data/candle_201801.csv"

schemaTb=extractTextSchema(dataFilePath)

update schemaTb set type=`LONG where name=`volume        tt=loadText(dataFilePath,,schemaTb);

2.2 ploadText

ploadText函数的特点可以快速载入大文件。它在设计中充分利用了多核CPU来并行载入文件,并行程度取决于服务器本身CPU核数量和节点的localExecutors配置。

首先通过脚本生成一个4G左右的CSV文件:filePath = "/home/data/testFile.csv"

appendRows = 100000000

dateRange = 2010.01.01..2018.12.30

ints = rand(100, appendRows)

symbols = take(string('A'..'Z'), appendRows)

dates = take(dateRange, appendRows)

floats = rand(float(100), appendRows)

times = 00:00:00.000 + rand(86400000, appendRows)

t = table(ints as int, symbols as symbol, dates as date, floats as float, times as time)

t.saveText(filePath)

分别通过loadText和ploadText来载入文件。本例所用节点是4核8超线程的CPU。timer loadText(filePath);

Time elapsed: 39728.393 ms

timer ploadText(filePath);

Time elapsed: 10685.838 ms

结果显示在此配置下,ploadText的性能是loadText的4倍左右。

2.3 loadTextEx

loadText函数总是把所有数据导入内存。当数据文件体积非常庞大时,服务器的内存很容易成为制约因素。DolphinDB提供的;loadTextEx函数可以较好的解决这个问题。它将一个大的文本文件分割

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海豚调度数据质量监控是一种用于监控和评估海豚调度系统中数据质量的方法。它主要通过检查数据的准确性、完整性、一致性和及时性等方面来判断数据的质量。 为了实施数据质量监控,你可以考虑以下步骤: 1. 确定监控指标:根据海豚调度系统的需求,确定需要监控的数据质量指标,例如数据准确性、完整性、一致性和及时性等。 2. 设计监控方法:根据监控指标,设计相应的监控方法。可以使用统计分析、规则引擎、数据可视化等技术手段来实现监控。 3. 收集数据:根据设计的监控方法,收集海豚调度系统生成的数据,并进行存储和处理,以便后续的质量评估和监控。 4. 执行监控:根据设定的监控方法,对收集的数据进行监控。可以周期性地运行监控程序,或者实时监控系统产生的数据。 5. 分析评估:对监控结果进行分析和评估,发现潜在的数据质量问题。可以使用可视化工具帮助分析和诊断问题。 6. 异常处理:一旦发现数据质量问题,及时采取措施进行异常处理。可以通过修复数据、调整系统配置或者改进数据收集方式等方式来解决问题。 7. 持续改进:根据监控结果和异常处理的经验,对海豚调度系统进行改进。可以优化数据收集过程、改进数据处理算法或者增加数据验证机制等。 通过上述步骤,你可以实施海豚调度数据质量监控,提高系统的数据质量和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值