Python

Notice: 为提升用户体验,DolphinDB Python API 的版本号现已调整。新的版本号与 DolphinDB Server 200 系列对齐。

2.0.11.0

功能优化

  • 取消对上传 BLOB 类型数据长度的限制;上传 SYMBOL/STRING 类型数据的长度必须小于 256 KB。

  • 优化类型注解。

  • Session.loadTextEx 增加 sortColumns 参数,支持将数据文件加载到 TSDB 引擎下的数据库中。

  • 兼容 NumPy 版本至 1.26.3,同时兼容 pandas 版本至 2.2.0。

  • 优化 Table 类中对非法列名的处理方式。

故障修复

  • 修复上传包含 SYMBOL 列的空 DataFrame 卡住的问题。

  • 修复订阅异构流表时,流表的 BLOB 类型列包含空值导致报错的问题。

  • 修复订阅异构流表时,Decimal 数据丢失小数点的问题。

1.30.22.6

新增功能

  • 新增支持 Python 3.11。

  • PROTOCOL_DDB 协议新增支持数据类型 DECIMAL128。

  • 新增上传字符串不能超过 64KB 的限制。

功能优化

  • drop 函数调整对于 STRING 型和不同长度的 list 型的输入值的处理逻辑。

故障修复

  • 修复下载字典中若包含 UUID/IPADDR/INT128 等类型数据时出现段错误的问题。

  • 修复 MultithreadedTableWriter 类成员未正常析构的问题。

  • 修复 MultithreadedTableWriter 在部分场景下插入错误类型的数据导致 Abort 的问题。

  • 修复上传 DataFrame 时指定列类型为 DECIMAL32/64/128,若该列第一个数据为空值则导致段错误的问题。

  • 修复上传 DataFrame 时若某列 dtype=datetime64[us] 则出现列长不匹配或报错的问题。

1.30.22.5

故障修复

  • 修复 NumPy ndarray 在指定不同内存布局时,上传数据出现乱序的问题。

  • 修复 TableAppender/TableUpserter/PartitionedTableAppender 类向低版本的 DolphinDB 追加数据时出现的兼容性问题。

  • 修复特定情况下上传 ArrayVector 列丢失空值数据的问题。

1.30.22.4

新增功能

  • 全平台支持使用 PROTOCOL_ARROW 协议。

  • 支持上传 Pandas 2.0 PyArrow 后端的数据。

  • 强制类型转换支持指定数据类型为 Decimal32 / Decimal64 的精度。

1.30.22.3

新增功能

  • 传输协议 PROTOCOL_DDB 新增支持 Decimal32/64 ArrayVector 类型数据的上传或下载。

1.30.22.2

新增功能

  • Session 和 DBConnectionPool 中 run 方法新增支持指定任务的并行度和优先级。

  • Session 新增支持使用锁以保证线程安全。

功能优化

  • 调整 NumPy 依赖版本为1.18.0~1.24.4。

  • 调整构造 Table 类时,传入参数 dbPath, data 时加载数据表的逻辑与Session.loadTable 的逻辑一致。

  • 使用 where 方法只添加一个筛选条件时生成语句将不包含括号。

故障修复

  • 修复使用 where 方法拼接多个筛选条件后生成语句不符合预期逻辑的问题。

  • 修复 Table 类 drop 方法在某些情况下不执行的问题。

  • 修复 TableUpdate、TableDelete 对象使用 where 方法,对其使用 showSQL 方法后返回错误 SQL 语句的问题。

  • 修复使用 upload 方法上传非 Table 对象时错误进行压缩上传的问题。

  • 修复 Table 类对象拼接 SQL 字符串时出现不合理书写方式的问题。

  • 修复构造 Table 类时内部参数设置有误导致使用 showSQl 后输出逻辑不正常的问题。

1.30.22.1

新增功能

  • Session 和 DBConnectionPool 均新增参数 show_output ,其用于指定是否在 Python 客户端展示脚本的输出内容。

  • TableAppender(原类名 tableAppender), TableUpserter(原类名 tableUpsert)和 PartitionedTableAppender 新增支持写入数据时根据表结构自动进行类型转换。

  • 新增支持 NumPy 的 C order 模式。

  • 新增支持在上传 DataFrame 时,通过设置属性 __DolphinDB_Type__ 指定列类型以实现强制类型转换。

  • 新增支持 MultithreadedTableWriter 在写入流数据表时,若连接断开将自动进行重连。

功能优化

  • 更新 Python API 用户手册。

  • 调整类名 tableUpsert 为 TableUpserter,与原有类名兼容。

  • 调整类名 tableAppender 为 TableAppender,与原有类名兼容。

  • 调整类名 session 为 Session,与原有类名兼容。

  • 优化了部分报错信息。

  • 优化下载乱码字符串时的处理逻辑。

  • 删除了 Table 类在析构时的打印信息。

  • 若流订阅中 handler 发生错误将报错并打印异常信息。

故障修复

  • 修复查询表时若添加多个 where 条件执行优先级异常的问题。

  • 修复在调用 TableAppender(原类名 tableAppender), TableUpserter(原类名 tableUpsert)或 PartitionTableAppender 上传 BLOB, INT128, UUID 和 IPADDR 对应的 arrayVector 型的数据时提示警告信息的问题。

  • 修复流订阅中偶现提示解析消息失败的问题。

  • 修复 DBConnectionPool 在析构时未调用 shutDown 导致进程卡住的问题。

  • 修复了 TableAppender(原类名 tableAppender), TableUpserter(原类名 tableUpsert) 和 PartitionedTableAppender 在引用 Session 或 DBConnectionPool 时,由于 Session 或 DBConnectionPool 提前析构导致无法使用的问题。

1.30.21.2

功能优化

  • 调整 Python API 依赖库pandas 的版本为不小于1.0.0。

故障修复

  • 修复当 MultithreadedTableWriter 写入失败时,调用 getUnwrittenData 方法会导致段错误的问题。

  • 修复无法下载超长 BLOB 数据(超过 64K长度)的问题。

  • 修复 Mac ARM 版本中在订阅 1.30.21、2.00.9及之后版本的 DolphinDB 时出现内存越界的问题。

  • 修复上传 np.datetime64 类型的空值数据被识别为错误类型的问题。

  • 修复上传第一个元素为 Decimal(“NaN“) 的 Vector 时发生数值溢出的问题。

  • 修复通过 PROTOCOL_DDB 协议下载 BLOB 类型的集合出现段错误的问题。

  • 修复调用 loadTableBySQL 方法时会覆盖当前 session 中变量”db”值的问题。

  • 修复 DBConnectionPool 调用 addTask 添加任务后若不取出数据则会导致进程卡住的问题。

1.30.21.1

新增功能

  • 新增支持 Python3.10。(1.30.21.1

  • SessionDBConnectionPool 新增 protocol 参数,在构建函数时进行使用,可指定数据格式的传输协议。(1.30.21.1

  • 支持流订阅通过 API 发起的连接接收数据。(1.30.21.1

  • DBConnectionPool.addTask 新增 args 参数,可以接收已定义的对象。(1.30.21.1

  • 支持 tableAppender, tableUpsertPartitionedTableAppender 上传 IPADDR, UUID 和 INT128 类型的数据。(1.30.21.1

  • 支持基于 Apache Arrow 协议下载数据。(1.30.21.1

  • 支持使用 DolphinDB 自定义的数据报文格式(简称 DDB 协议)下载和上传 DECIMAL 类型数据。(1.30.21.1

  • 优化了报错信息。(1.30.21.1

故障修复

  • 修复错误:macOS 重复创建 MultithreadedTableWriter 后提示创建信号量失败。(1.30.21.1

  • 修复错误:开启 pickle 后下载包含 STRING 类型列的空表提示 "unmarshall failed"。(1.30.21.1

  • 修复错误:流订阅中包含 array vector 数据时发生 API Abort。(1.30.21.1

  • 修复错误:在 uWSGI 中调用 Python API 执行 SQL,API 发生段错误。(1.30.21.1

  • 修复错误:上传数据中包含空值 np.nan 时,服务器结果产生字符 NaN 而非空值。(1.30.21.1

1.30.19.4

新增功能

  • 流订阅指定 batchSize 为小数时增加报错提示。

功能优化

  • 流订阅指定 msgAsTable = True 且指定 batchSize 为正整数时,将基于消息块处理记录。

  • python API 最高支持 NumPy 1.23.4 和 pandas 1.5.2。

  • 优化上传数据报错信息。

  • 优化 Mac python API 报错信息。

故障修复

  • 修复下载的数据中时间戳小于1970时,会报错的问题。

  • 修复通过 tableAppender, tableUpsert, PartitionedTableAppender 写入包含 INT128, IPADDR, UUID, BLOB 类型列时,写入失败的问题。

  • 修复通过 s.dropPartition 删除分区,或通过 s.loadTable 加载表时,由于创建的临时 database handle 和 table handle 未销毁而造成 server 内存泄漏的问题。

1.30.19.3

新增功能

  • session 类新增 setTimeOut 方法,用于设置 TCP 连接的 TCP_USER_TIMEOUT 选项。仅 Linux 系统生效。

  • createPartitionedTable 新增参数 sortKeyMappingFunction ,支持对 sortKey 降维。

功能优化

  • DataFrame 在指定 __DolphinDB_Type__ 属性后,可以按照指定类型上传。

故障修复

  • 修复 Python API 上传 object 类型的 Bool 数据时出现数值错误的问题。

1.30.19.2

新增功能

  • 为函数添加注解,支持在调用函数时提示函数用法。

  • Windows 系统下,Python API 新增支持官网 Python3.8, Python3.9。

  • DBConnectionPool 的 runTaskAsync 函数支持上传数据。

  • session 增加 enableJobCancellation 方法,仅支持 Linux 系统,通过 Ctrl+C 取消进程中所有正在执行的 session.run() 的任务。

  • Linux aarch64 系统下,Python API 支持 conda 环境的 Python3.7-Python3.9。

故障修复

  • 解决了 Table 对象被删除后,服务器端不会自动释放资源的问题。

1.30.19.1

新增功能

  • 新增系统变量 version,通过 dolphindb.__version__ 可以查看 API 的版本号。

  • tableAppender 支持写入 array vector 类型数据。

  • session.connect 支持 reconnect 参数,实现非高可用场景下,自动重连节点。

  • 新增 streamDeserializer 类,实现对异构流数据表的解析,同时,subscribe 函数新增 streamDeserializer 参数,接收经 streamDeserializer 解析后的数据。

  • API 端支持返回 s.run 的 print 结果。

  • (1) 新增 tableUpsert 对象,(2) MultithreadedTableWriter 新增参数 modemodeOption ,均可实现对索引内存表、键值内存表,或者 DFS 表通过 upsert 方式进行更新。

  • 支持上传或读取 INT128, UUID, IP 类型的数组向量,但上传或读取这些类型的数组向量时需设置 enablePickle =false。

功能优化

  • 规范 API 空值处理方式。

  • session 对象 enableASYN 参数名调整为 enableASYNC。

  • 通过 API 连接集群服务器时,实现请求的负载均衡。

  • MultithreadedTableWriter 对象写入内存表时,参数 dbPath 和 tableName 的设置发生改变: dbPath 需设置为空,tableName 需为内存表表名。

故障修复

  • 解决通过 API 查询到的数据存在乱码时,无法下载数据的问题。

  • 解决 session 关闭后,端口没有及时释放的问题。

1.30.17.4

故障修复

  • 修复上传 DataFrame 数据,且它的字符串类型列的首行为 None 时,出现上传失败的问题。

1.30.17.3

故障修复

  • 修复指定 DBConnectionPool 的 loadBalance 为 True 时,线程池创建失败的问题。

1.30.17.2

新增功能

  • 支持最新 NumPy 版本 1.22.3 和最新 Pandas 版本 1.4.2。仍旧不支持 Pandas 1.3.0 版本。

  • 支持上传 array vector 到 server 端,支持 DataFrame 内嵌数组方式创建包含 array vector 字段的表。修复 any vector 上传和下载的问题。

  • ErrorCodeInfo 类的 errorCode 由整数类型调整为字符串类型,并增加 hasErrorsucceed 方法来获取数据写入是否正常。

1.30.17.1

新增功能

  • 增加 MultithreadedTableWriter 类,支持对分布式表、内存表、维度表的多线程写入。且实现了加密通信、压缩传输和写入高可用等功能。

  • session 对象增加 compress 参数,支持数据的压缩下载。

  • Table 新增 toList 方法,可将 array vector 的数据转换为二维数组,方便使用。

  • PartitionedTableAppender 支持写入表时自动转换日期时间类型。

  • session.database 新增 engine, atomic, enableChunkGranularityConfig 参数。仅 2.00.0 及以上版本 server 的 TSDB 引擎支持这些参数。

  • Database.createPartitionedTable 新增 compressMethods, sortColumns, keepDuplicates 参数。仅 2.00.0 及以上版本 server 的 TSDB 引擎支持这些参数。

功能优化

  • 减少了 session 对 Python 全局锁的占用时间。

故障修复

  • 修正 session.subscribe 存在数据丢失的问题。

1.30.16.1

新增功能

  • 支持200及以上版本的服务器。

  • 支持数组向量(array vector)的上传与下载。

功能优化

  • 版本命名规则进行了调整,与服务器版本保持一致。

1.30.0.15

新增功能

  • session 对象增加了 keepAliveTime 参数,设置检测 TCP 存活的时间间隔,默认为30秒。在大数据量访问时,给该参数设置一个较大值,可以避免 TCP 连接掉线。

1.30.0.10

故障修复

  • orca: 修复 orca.panel 函数。

1.30.0.9

新增功能

  • orca: 添加 rolling rank 函数。

  • orca: rolling mean 增加支持加权平均值功能。

  • orca: 新增函数 orca.read_in_memory_table: 支持读取 DolphinDB 内存表。

  • orca: 新增 orca.panel 函数。

功能优化

  • orca: 移除 groupby 中 lazy 参数,groupby 只支持以 lazy 方式进行计算。

故障修复

  • orca: 修复 window join 中 where 失效的问题。

1.30.0.8

新增功能

  • DBConnectionPool 新增了 runTaskAsyn 函数,实现并行异步任务调用接口简化。

故障修复

  • 修复 update 函数 where 条件不生效的问题。

  • 修复使用 Python API 异步追加数据时,客户端会 crash 的问题。

  • 修复使用 Python API 两次 upload 同一个名字的 named object, 报错该 named object 无法找到的问题。

1.30.0.7

功能优化

  • 取消 Python API 安装时 pandas 版本必须低于1.0的限制。

1.30.0.6

新增功能

  • 提供 partitionTableAppender 支持向分布式表并发写入数据。

  • run 函数提供 fetchSize 参数,支持每次读取 fetchSize 行记录。

  • 流数据订阅时支持批量处理。

  • run 执行完毕后自动清除本会话内生成的变量。

  • 连接时进行 Server 版本的兼容性检查。

  • tableAppender 函数提供写入数据时自动转换时间类型功能。

1.30.0.5

功能优化

  • 优化数据传输性能, 最新Server版本请升级 Python API 到1.30.0.5

  • pip3 install dolphindb==1.30.0.5。