金融数据导入手册之:逐笔数据篇

本页为新闻文章页面,给出标题与发布日期,并概述逐笔数据导入的准备工作与核心步骤;完整教程发布在官方知乎。

Source: https://dolphindb.cn/news/detail/132

What this page covers

技能认证特训营第二期正式开启(限时报名) cta

页面顶部的活动报名入口与优惠提示。

金融数据导入手册之:逐笔数据篇 product_overview

新闻文章标题与发布日期,并说明内容将概述导入准备与核心步骤且完整教程在官方知乎。

准备工作示例 how_it_works

给出数据导入前的准备工作三方面:数据源分析、存储方案规划、分区规划,并以逐笔委托 CSV 为例说明字段与类型选择。

CSV 示例与字段/类型要点

数据导入与清洗转换 how_it_works

说明 DolphinDB 使用 loadTextEx 进行 CSV 读取、清洗、入库一体化,transform 参数可引用函数以进行类型转换、增列、过滤、编码转换、部分列导入等。

transform 典型用例(按页面示例拆分)

常见问题 faq

针对导入慢/无写入、out of memory、NFS Bad file descriptor、去重等问题给出配置与处理建议。

Facts Index

从页面中抽取的事实卡片(按出现顺序)
Entity Attribute Value Confidence
金融数据导入手册之:逐笔数据篇发布日期2022.12.29high
本文内容范围涵盖内容概述数据导入前的准备工作和导入的核心步骤;完整教程发布在官方知乎high
数据导入准备工作包含方面数据源分析、规划存储方案、规划分区(共三个方面)high
数据源分析分析角度与目的从 DolphinDB 数据类型兼容性的角度分析数据源,选择满足建库建表要求的方案high
存储方案规划推荐方案(无表连接需求)推荐单库单表存储数据high
存储方案规划推荐方案(有表连接需求)推荐一库多表存储数据high
Level2 逐笔数据分区规划推荐分区策略复合分区:先按日期做值分区,再按股票代码做 HASH 分区high
示例数据文件文件类型与工具以上市委托数据 CSV 文件为例,使用 Linux 系统的 head 命令查看high
示例 CSV 文件特点第一行内容第一行是文件说明,读取时需要跳过high
示例 CSV 文件特点列名情况从第二行开始是数据,没有列名;建表时需根据说明文档定义字段名称和字段类型high
示例 CSV 字段名(从左至右)字段列表SecurityID, TransactTime, valOrderNoue, Price, Balance, OrderBSFlag, OrdType, OrderIndex, ChannelNo, BizIndexhigh
字段类型选择SYMBOL 类型字段SecurityID、OrderBSFlag、OrdType 为重复较多的有限数量的字符串,使用 SYMBOL 类型high
字段类型选择TransactTime 类型TransactTime 为从年到毫秒的日期,使用 TIMESTAMP 数据类型high
字段类型选择其它字段类型规则整数用 INT,浮点数用 DOUBLEhigh
示例 CSV 字段类型(从左至右)数据类型序列SYMBOL, TIMESTAMP, INT, DOUBLE, INT, SYMBOL, SYMBOL, INT, INT, INThigh
本教程存储引擎选择推荐引擎推荐选用 TSDB 引擎high
上市委托逐笔数据规模每日数据大小每天逐笔委托数据大小在 3GB 左右high
TSDB 分区方案(教程推荐)分区策略先按日期做值分区,再用股票代码做 7 个 HASH 分区high
日期值分区初始值初始值建议VALUE 的初始值写两三天的初始值即可;实际分区值会根据数据的实际日期自动扩展high
DolphinDB 数据导入核心函数函数名称与用途loadTextEx:可用于 CSV 文件读取、数据清洗和入库一体化操作high
导入数据核心代码示例database 调用db = database("dfs://sh_entrust")high
loadTextEx transform 参数引用对象与作用transform 参数引用 transType 函数定义,用于数据清洗和类型转换medium
transform 能完成的需求需求列表转换数据类型、在 CSV 基础上增加列、过滤无效数据、转换字符编码、导入部分列high
transform 用例:转换数据类型场景描述当 SecurityID 为整型不符合 SYMBOL 而报错时,可用 transType 自定义转换数据类型并赋给 transform 后再导入high
transType 函数定义示例函数签名片段def transType(mutable memTable)high
transform 用例:增加列场景描述CSV 缺少某些列(如日期)但文件名包含日期信息时,可通过 transform 引用的函数增加列并赋值high
addCol 函数定义示例(增加列)函数签名片段def addCol(mutable memTable,datePara)high
transform 用例:过滤无效数据示例条件可在 transform 引用函数中用 select 筛选;例如只写入价格大于 0 的数据high
fliterData 函数定义示例函数签名片段def fliterData(mutable memTable)high
transform 用例:转换字符编码编码转换方向有时需要把 GBK 编码的列转成 UTF-8high
字符编码转换示例代码片段(页面原样)函数签名片段def addCol(mutable memTable)high
transform 用例:导入部分列实现方式在 transform 引用的函数中筛选出所需列,实现导入部分列high
partCol 函数定义示例函数签名片段def partCol(mutable memTable)high
单个文件导入长时间执行不完且无硬盘写入原因单个 CSV 文件太大,缓存不够用high
单文件过大导致缓存不足的处理参数调整建议将 OLAPCacheEngineSize 和 TSDBCacheEngineSize 调整为大于 CSV 文件大小,并重启系统high
导入过程 out of memory处理建议(社区版 license)若使用社区版本 license,联系负责支持的销售人员获取试用版本 licensehigh
导入过程 out of memorymaxMemSize 配置建议若 maxMemSize 远小于系统内存,建议配置为系统内存的 80%high
导入过程 out of memoryworkerNum 与 localExecutors 配置方法workerNum=可用内存除以单个文件大小向下取整;localExecutors=workerNum-1high
NFS 系统导入 Bad file descriptor解决方案NFS 文件需用 v3 版本,并设置 local_lock 参数为 all 方式进行挂载high
数据去重实现方式建表时指定 keepDuplicates 参数的值可以去重high
keepDuplicates 选项ALL保留所有数据high
keepDuplicates 选项LAST仅保留最新数据high
keepDuplicates 选项FIRST仅保留第一条数据high
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high