3.00 版本来了!DolphinDB V2.00.12 V3.00.0 正式发布!

一文带你了解 DolphinDB 全新版本升级!

本次更新后,3.00.0版本将成为 DolphinDB 的最新版,2.00.12版本变更为稳定版,此前发布的1.30.23版本将成为1.30系列的最后一个版本。接下来,带大家一起看看 DolphinDB V2.00.12 & V3.00.0 都做了哪些更新与优化~

3.00.0 大版本全新发布

技术的价值不在于技术本身,而在于其为业务服务的能力。DolphinDB 的 3.00 版本迈入用户需求的深水区,进一步完善其作为基础开发底座的能力,释放用户的创造力,为业务二次开发带来更多可能性。

3.00版本中,DolphinDB 处理风控、交易等场景的能力得到了大幅提升:新增了交易型内存存储引擎,流数据架构新增 CEP 引擎订单簿引擎。同时,DolphinDB 推出了嵌入式版本 “Swordfish”,用户可以将 DolphinDB 作为基础组件嵌入到交易和实时风控等对时延有苛刻要求的场景中。

强大的数据分析能力,一直以来是 DolphinDB 备受关注的亮点之一。3.00版本中,DolphinDB 引入了 Python Parser 脚本引擎,支持原生 Python 语法、Pandas 库以及所有 DolphinDB 内置的功能。DolphinDB 也完成了对类(Class)的支持更新了基于宏变量的元编程方法,帮助用户提升数据分析体验。此处划重点:新版本还发布了全新的基于 CPU-GPU 异构计算和遗传算法的因子挖掘平台—— Shark GPLearn

除了上述内容,插件市场,Catalog 和 AI dataloader 等重要功能也将在3.00版本中正式发布。下面我们一起看看详细内容!

1. 插件市场新装修

首先为大家介绍一个插件市场的更新。

DolphinDB 的插件市场提供了例如行情订阅、数据存取、机器学习、云存储、可视化等多个类别的插件工具。用户在 DolphinDB Server 中通过 installPlugin 和 loadPlugin 函数,就可以快速地安装并加载所需的插件,轻松扩展系统功能。

本次更新,我们将在插件市场中发布为企业版用户打造的高频回测、模拟撮合等专业插件,更好地匹配用户深入的业务需求。此外,插件市场上线了用户和评价系统,该系统将与 ASK DolphinDB 社区打通,打造完整的用户生态。未来,用户将在 DolphinDB 生态中拥有自由开发、上传作品、交易、即时问答和专业内容输出等完整体验,享受到高质量专业生态带来的助力。

2. 满足低延时高并发强事务需求:交易型内存存储引擎 IMOLTP

银行转账交易系统、火车票销售系统等应用场景,并发度高、吞吐量大、对实时响应和事务的一致性要求较高,是典型的在线事务处理(OLTP)场景。传统存储引擎架构会将数据存储在磁盘上,而在面对上述场景要求时,软硬件层面将面临巨大挑战。基于这类情况,DolphinDB 设计并实现了交易型内存存储引擎 IMOLTP,将所有数据都维护在内存中,从而省去磁盘 I/O 的开销;以行存的形式来组织数据,支持创建 B+ 树索引 (主键索引和二级索引) ,来应对低时延、高并发的增删改查操作

IMOLTP 引擎可以在建库时指定,与 OLAP 和 TSDB 的配置方式相同。通过一个简单的建库建表案例,我们可以了解 IMOLTP 的用法:

// 建库
db = database(directory="oltp://testdb", partitionType=VALUE, 
            partitionScheme=2024.01.01..2024.01.02, engine="IMOLTP")
// 建表
dummy = table(1:0, ["time", "id", "price", "vol"], [DATETIME, INT, DOUBLE, LONG])
pt = createIMOLTPTable(
    dbHandle=db,
    table=dummy,
    tableName="pt",
    primaryKey=`id
)
pt=loadTable("oltp://testdb", "pt")
// 写入数据
insert into pt values(2024.03.05T09:00:00, 1, 1.2, 11)
insert into pt values(2024.03.05T09:00:01, 2, 1.3, 12)
insert into pt values(2024.03.05T09:00:01, 3, 1.4, 16)
// 查询数据
select * from pt

3. 赋能系统底层架构:嵌入式产品 Swordfish

许多用户在体验了 DolphinDB 之后,提出希望能将 DolphinDB 作为基础组件嵌入到已有的风控或交易平台上,为已有系统的底层架构赋能。为此,我们推出了嵌入式版本—— Swordfish,其支持功能与 Server 的3.00.0版本一致。

Swordfish 将 DolphinDB 核心计算能力进行封装,以动态库的方式提供给用户。内存计算方面,Swordfish 内置了 1500+函数与流计算框架,支持 DolphinScript 和 Python Parser 两个脚本引擎,展现出高并发、低延时的数据读写和计算能力。在交易与风控系统等极速场景中,用户可以使用 Swordfish 直接在当前进程内处理实时数据,省去进程间通信的开销​。存储方面,Swordfish 中内置了 OLAP 存储引擎、TSDB 存储引擎、以及全新设计的交易型内存存储引擎,支持到个位微秒级的数据读写、事务操作与持久化日志。同时,Swordfish 还支持加载插件扩展功能,有助于降低开发工作量​。

4. 洞察实时流数据价值:CEP 复杂事件处理引擎

为了更好地满足交易策略、交易风控、传感器采集等场景下复杂的数据处理需求,DolphinDB 在流数据框架中增加了复杂事件处理(CEP)引擎。CEP 引擎的核心功能包括事件定义、事件捕捉和过滤、事件模式匹配、事件发送、事件处理等,通过从大量的实时事件流中提取重要的事件和关联关系,从而实现实时监控、异常检测和决策支持

下例应用 CEP 引擎,定义股票逐笔成交事件、成交回报事件、下单事件、撤单事件、创建 monitor 监视器,实现了基于股票逐笔成交数据的事件驱动策略,即根据每支股票的最新的成交价涨幅和累计成交量判断是否执行下单操作。

5. 自动因子挖掘:Shark GPLearn 引擎

为了满足用户不断增长的因子挖掘需求,DolphinDB 在新版本中推出了 Shark GPLearn 高性能因子挖掘平台。相比传统依赖于人工设计和选择特征工程的因子挖掘方法,Shark 平台可以直接从数据库中读取数据调用遗传算法进行自动因子挖掘,同时利用 GPU 加速遗传算法的适应度计算提升因子挖掘效率

Shark CPU-GPU 异构计算平台的优势主要体现在如下方面:

  • 丰富的算子库:基于 Python 的遗传算法框架 gplearn 只支持简单且有限的基础数学算子,很难挖掘出数据的深层次特征。DolphinDB 内置各种滑动窗口、时序处理等丰富的函数库,Shark 平台将部分函数移植至GPU,可以更高效地挖掘高质量因子。
  • 三维数据的支持:Shark 平台提供分组语义,允许在计算过程中进行分组计算,从而支持对三维数据进行分析,来挖掘时序因子或截面因子。
  • 初始化公式:Shark 平台支持初始化公式的功能,方便用户在上一轮挖掘出的较优的因子基础上,继续挖掘。
  • 多卡支持:Shark 平台支持单机多卡训练,能够有效利用多个 GPU 的并行计算能力,加快整个训练过程的速度,提高训练效率。在1000万行测试数据的条件下,Shark 相比 gplearn 有86倍的性能提升。

下面这段脚本介绍了 Shark 平台自动挖掘因子的流程:

// 生成测试数据
def prepareData(num){
    total = num
    data=table(total:total, `a`b`c`d,[FLOAT,FLOAT,FLOAT,FLOAT])
    data[`a]=rand(1.0, total)   
    data[`b]=rand(1.0, total)   
    data[`c]=rand(1.0, total)   
    data[`d]=rand(1.0, total)   
    return data
}
def f(x){
    return x * x *x *x / (x * x *x *x + 1)
}
num = 1000000
source = prepareData(num)
predVec = (select f(a) + f(b) + f(c) + f(d) as predVec from source)[`predVec]

// 创建GPLearnEngine
engine = createGPLearnEngine(source, predVec, populationSize=1000,
generations=10, initDepth = [2,6], constRange=0, fitness=`mae, 
functionSet=['add', 'sub', 'mul', 'div'])

// 进行挖掘,得到因子
trainRes=engine.gpFit(programNum=5, printCorr=true)

6. 全新脚本引擎:Python Parser

Pandas 是数据分析常用工具,用于数据清洗、计算、分析等场景,然而在应对多线程和 CPU 密集型任务时,其始终无法充分发挥出硬件性能和并行执行任务的优势。

此次 DolphinDB 为习惯用 Pandas 的用户提供了一个更优的替代方案——Python Parser。脚本引擎 Python Parser 不但支持解析 Python 语法编写的脚本,也支持调用 DolphinDB 原生的内置函数和库表对象,DolphinDB 还提供了 Pandas 接口库,将库表与 Pandas 的数据结构相结合,从而帮助用户轻松地用 Python 语言,在 DolphinDB 计算框架上高效完成计算

Python Parser 与 DolphinDB 脚本语言(DolphinScript )共享对象系统和运行环境,使用时,用户只需在脚本编辑器切换解析语言为 Python Parser,即可用 Python 编写脚本。

VS Code 配置

DolphinDB GUI 配置

7. 实现面向对象编程:支持类

新版本中,DolphinDB 在 DolphinScript 的基础上引入了类(Class),从而实现了面向对象的编程(Object-Oriented Programming, OOP)。面向对象编程是一种重要的编程范式,通过将数据和方法封装在类中,实现了数据多态、抽象、继承等特性,有效提高了代码的可读性和可维护性,降低了复杂业务逻辑的代码维护成本。特别地,利用Class带有状态的特性,用户可以更方便地开发自定义状态函数,用于 CEP 引擎以及响应式状态引擎(Reactive State Engine)。

8. 更便捷的数据工程化管理:数据目录(Catalog)功能

先前 DolphinDB 使用 loadTable 加载库表的方式,与标准 SQL 的访问方式有所差异。为了给用户提供更便捷、更标准、兼容性更好的数据库访问体验,同时更方便地与第三方软件进行集成,DolphinDB 为新版本引入了 Catalog 功能,支持以下述标准方式访问库表,更有利于数据的工程化管理。

select * from catalog.schema.table

新版本中,Catalog 的三级概念与原有数据库和表的概念映射关系如下表:

三级层次映射概念说明
Catalogsuper database用于包含多个 Schema(Database),相当于 Super Database。
SchemadatabaseSchema 对应之前的 database。在 Catalog 的相关操作中,使用单独的 Schema Name 而不是之前的 dbUrl 进行相关操作,以此将Database Name 和 dbUrl 解耦。
TabletableTable 对应现在的 DFS Table。

9. 基于逐笔数据生成订单簿:订单簿引擎

订单簿是研究市场微观结构的重要工具。订单簿快照对量化金融的交易决策、交易执行、风险管理和市场分析等方面具有重要意义。新版本中,DolphinDB 推出了经过正确性校验的高性能订单簿合成引擎。用户只需要通过 createOrderbookSnapshotEngine 函数即可定义该引擎,再通过向引擎输入符合约定的逐笔成交和逐笔委托数据,便可触发计算。在业务上,订单簿引擎支持多个交易所的多种证券类型,支持任意档位和任意频率的订单簿,支持成交明细委托明细撤单明细等丰富的衍生指标支持用户自定义指标等。在实时技术上,订单簿合成引擎支持流批一体、多种时间概念、灵活的触发机制等。

下述代码展示了如何合成1秒频率的订单簿,脚本中名为“demo”的合成引擎的功能为每1s计算输出深交所股票20档买卖盘口。

/*
 *  功能:创建订单簿引擎
 */
// 创建引擎参数outputTable,即指定输出表
suffix = string(1..10)
colNames = `SecurityID`timestamp`lastAppSeqNum`tradingPhaseCode`modified`turnover`volume`tradeNum`totalTurnover`totalVolume`totalTradeNum`lastPx`highPx`lowPx`ask`bid`askVol`bidVol`preClosePx`invalid  join ("bids" + suffix) join ("bidVolumes" + suffix) join ("bidOrderNums" + suffix) join ("asks" + suffix)  join ("askVolumes" + suffix) join ("askOrderNums" + suffix) 
colTypes = [SYMBOL,TIMESTAMP,LONG,INT,BOOL,DOUBLE,LONG,INT,DOUBLE,LONG,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,LONG,DOUBLE,BOOL] join take(DOUBLE, 10) join take(LONG, 10) join take(INT, 10) join take(DOUBLE, 10) join take(LONG, 10) join take(INT, 10) 
outTable = table(1:0, colNames, colTypes)
// 创建引擎参数dummyTable,即指定输入表的表结构
colNames = `SecurityID`Date`Time`SourceType`Type`Price`Qty`BSFlag`BuyNo`SellNo`ApplSeqNum`ChannelNo
colTypes = [SYMBOL, DATE, TIME, INT, INT, LONG, LONG, INT, LONG, LONG, LONG, INT]
dummyOrderTrans = table(1:0, colNames, colTypes)
// 创建引擎参数inputColMap,即指定输入表各字段的含义
inputColMap = dict(`codeColumn`timeColumn`typeColumn`priceColumn`qtyColumn`buyOrderColumn`sellOrderColumn`sideColumn`msgTypeColumn`seqColumn, `SecurityID`Time`Type`Price`Qty`BuyNo`SellNo`BSFlag`SourceType`ApplSeqNum)
// 创建引擎参数prevClose,即昨日收盘价,prevClose不影响最终的输出结果中除昨日收盘价以外的其他字段
prevClose = dict(`000400.SZ`300274.SZ`300288.SZ`300122.SZ`300918.SZ, [1.1, 2.2, 3.3, 4.4, 5.5])
// 定义引擎,每1s计算输出深交所股票20档买卖盘口
engine = createOrderBookSnapshotEngine(name="demo", exchange="XSHE", orderbookDepth=20, intervalInMilli=1000, date=2022.01.10, startTime=09:15:00.000, prevClose=prevClose, dummyTable=dummyOrderTrans, inputColMap=inputColMap, outputTable=outTable)

10. 深度学习的数据高速通道:AI Dataloader

深度学习模型是现代广泛应用的人工智能模型,主要应用包括量化投资、模式识别、自然语言处理、计算机视觉等等,随着 ChatGPT 等大模型的出现,深度学习正逐渐改变人类社会。

在量化投资领域,深度学习有能力自动发现变量之间的关系,为量化投资策略提供更多可能性。在传统的量化策略开发流程中,通常会使用 Python 或第三方工具生成因子,并将其存储为文件,这些因子是构建深度学习模型的基础输入。随着证券交易规模不断扩大以及因子数据量的激增,以传统的文件形式存储因子,进而作为深度学习模型的输入,会面临内存带宽与存储空间的瓶颈,以及因子数据与深度学习模型集成的工程化和成本问题。

为了应对这些挑战,DolphinDB 将数据库与深度学习相结合,开发了数据加载工具 AI Dataloader。AI Dataloader 可以将存储于 DolphinDB 中的因子数据一步到位转换成 PyTorch 、TensorFlow 等深度学习框架需要的 tensor 格式,减少中间过程;同时支持以流水线作业的方式,增量读取和转换数据,控制 Python 客户端内存使用量,用户无需为数据转换和内存管控耗费时间精力,能够更好地聚焦业务优化。用 AI Dataloader 实现因子数据管理和深度学习模型集成的总体架构如下:

11. 高效的多播通信:UDP 可靠组播模式

UDP 组播是一种基于 UDP 协议的通信方式。与 TCP 通过建立连接一对一传输不同,UDP 不建立连接,利用专用组播地址将数据同时传输给多个接收者,因此具有时延较低、带宽占用较少等特点。但也因为 UDP 无连接协议的特点,在 UDP 模式下,数据传输过程中可能会出现丢包、乱序等问题

新版本中,DolphinDB 为流计算的发布订阅新增了对 UDP 组播模式的支持,在多订阅端共同订阅单一发布端的情况下,大大提升了发布和订阅数据的效率。DolphinDB 还采取了一系列措施进行数据安全封装,保证 UDP 组播订阅时数据的完整性和顺序一致性:在共享内存中维护 log buffer,同时利用NAK机制来保证传输失败时的重传;在 log buffer 中维护数据包的 seq number,来保证接收时可以通过该 number 重建顺序。

订阅者可指定udpMulticast=true 启用 UDP 模式订阅。

subscribeTable(...,udpMulticast=true)

DolphinDB 将在3.00.0的修订版中支持 UDP 可靠组播模式,提升流数据多路订阅发布的性能,敬请期待!

注:2.00.12版本与3.00.0版本将同步支持 AI Dataloader 与订单簿引擎功能。

2.00.12 升级功能清单

本次版本发布,除了带来上述重磅新功能以外,还兼顾了产品性能与易用性、数据分析能力、流数据功能、运维管理功能等方面的优化与提升。

注:此类升级功能皆适用于2.00.12版本与3.00.0版本。

1. 易用性增强

  • 新版本新增支持了基于宏变量的元编程方法,与传统基于函数实现 SQL 元编程的方式相比,用户可以用宏变量声明列字段,并直接通过 SQL 脚本编写元编程代码,书写难度大幅降低。
t = table(`a`a`b as sym, 1 2 3 as val1, 2 3 4 as val2, 3 4 5 as val3)

names=["val1", "val2", "val3"]
<select _$$names from t>.eval()

alias = "rs_val"
<select rowSum(_$$names) as _$alias from t>.eval()

此外,新版本还新增了字段序列表达式,应对宽表多字段查询场景,帮助用户更高效地书写 SQL 脚本:

select fac001...fac999 from t // 表示查询出 fac001, fac002, ..., fac998, fac999 列
  • 运维管理的易用性层面,新版本提供了统一在线修改参数配置的函数 setDynamicConfig,并同步提供获取修改后配置值的函数 getDynamicConfig

2. 数据库使用体验优化

新版本对 TSDB 引擎的功能与使用体验均进行了优化。

  • DolphinDB 的新版本支持在字段级别设置 zstd 压缩算法,相比于 LZ4 压缩算法,压缩比提高了30%左右,从而进一步降低存储成本。
create table "dfs://test"."pt"(
        id INT[compress="zstd"], //指定使用zstd压缩算法
        deviceId SYMBOL[compress="zstd"],
        date DATE[compress="zstd"],
        value DOUBLE[compress="zstd"],
        isFin BOOL[compress="zstd"]
    )
  • 支持使用 update 更新分布式表的 Array Vector 列。
  • [HINT_EXPLAIN] 执行计划中拓展了 sortKey 命中的相关信息,帮助开发定位并优化 SQL 的性能问题。
  • TSDB 引擎的排序字段(Sort Columns)支持 DECIMAL 类型。
  • 支持 update + context by 语句搭配 csort 和 having 子句来进行排序和过滤。

3. 数据分析能力更强大

新版本加强了数据类型以及函数方面的支持。在数据类型方面,支持了通过 decimalRoundingMode 配置项来指定全局的 DECIMAL 舍入模式;拓展了对数学统计函数的支持,包括:

  • 窗口计算:新增 m 系列函数 mLowRangempercentileTopNmfirstNot 等 和 tm 系列函数 tmLowRange 等。
  • 矩阵计算:支持求秩函数 matrixRank,求伪逆函数 pinverse;矩阵新增支持 STRING 和 DECIMAL 类型。
  • 线性回归:新增支持了 wlsr 函数,用于单列的加权最小二乘回归计算。其返回值为元组,可搭配 moving 函数实现滑动加权最小二乘回归的计算。
  • 概率分布:新增 F 分布、卡方分布、正态分布的概率密度函数 pdfFpdfChiSquarepdfNormal
  • 数据插值:新增点集的多项式插值函数 kroghInterpolate
  • 优化器:新增函数 fmin,支持通过 Nelder-Mead 单纯形算法找到目标函数的最小值。

新版本还专门针对金融和物联网场景,增加了如下函数

  • 金融
    • 新增函数 bondAccrInt,用于计算有价证券的应付利息。
    • 函数 bondDirtyPricebondDuration 和 bondConvexity 新增对零息债券和贴现债券的支持。

  • 物联网:新增函数 geoWithin,用于判断点是否在多边形中,便于地理位置的判断,可用于车辆警戒区域判断,区域车辆统计等场景。

此外值得一提的是,在上一个版本中,DolphinDB 对 SQL 开窗函数功能进行了支持,兼容标准 SQL,方便用户迁移。此次新版本进一步完善了开窗函数的功能,主要体现在:

  • 支持时间范围,即可以在指定的时间范围内对数据进行聚合、计算或排名。
  • 支持与 group by 子句结合使用,并且支持嵌套聚合函数。
  • 新增支持以下函数:iminimaximinLastimaxLastfirstNotlastNotsum2prodpercentilewavgwsumcorrcovarbetaatImaxatImin

4. 流数据功能拓展

在流数据计算方面,新版本拓展了已有流计算框架以及引擎的功能,例如:

  • 流数据表:通过函数 setStreamTableTimestamp 为注入数据打上时间戳。
  • 时序聚合引擎:(1)配置数据接收延时 acceptedDelay;(2)通过 warmupStreamEngine 预注入历史数据。
  • 响应式状态引擎:状态函数 prev 和 move 支持对数组向量的计算。
  • 横截面引擎:参数 contextByColumn 支持指定多个分组列。
  • 异常检测引擎:支持自定义输出的异常指标信息。

5. 性能再提升

  • 新版本增加了 JIT 支持的数据类型,包括set、arrayVector、dict、string,大幅拓展了 JIT 能够支持的应用场景。
  • 优化了多种场景下join的性能:包括 cross join,并发 join 多线程、维度表与分布式表 join。
  • 优化分区剪枝逻辑,使得 in 子句中 list 为变量时,能够裁剪分区范围,以行如where date(dt) in 2022.01.01的条件查询按 Month 分区的表时,可以定位到对应月份。
  • 优化 TSDB 从 CacheEngine 中读取数据的性能,最多达到20多倍的性能提升。
  • 优化了回归函数 lassoElasticNet的性能。

6. 运维管理功能强化

新版本从故障修复、负载平衡、权限管理、数据库审计等方面对数据库进行了升级,确保业务稳定运行。

  • 支持通过加载插件的方式对内置系统函数进行热修复,无需重启 DolphinDB,保障数据库服务 7*24 不间断地运行。
  • 新增控制节点、数据节点上 rebalance 并发线程数的参数,用以控制 rebalance 过程的效率与资源消耗。
  • 优化 rebalanceChunksAmongDatanode 函数:改进了分区大小估算方法,使平衡结果更精确;优化分区移动策略,减少网络传输;增加算法适用场景,可应对单机多节点、共享磁盘等不同部署方式。
  • 计算节点可以执行用户/组管理,权限管理等相关函数。
  • 新增数据库审计日志,记录 DML(库、表、分区、字段)及 update/delete 等记录。在发生数据异常时,运维人员可以通过审计日志来定位 DFS 表的结构及数据的修改行为。

7. Web 端功能优化与扩展

  • 新增用户权限管理界面。管理员可以通过用户管理和组管理页面,对用户、组设置不同应用范围(分布式数据表、共享内存表、流数据表、函数视图、全局权限)的权限,并实现批量用户管理。

  • 新增配置管理界面。管理员可以通过控制节点上的配置管理界面对集群节点及配置项集中管理和设置。

未完待续……

1. Roadmap

接下来的几个版本中,DolphinDB 将会推出的重点功能如下:

  • 支持主键模型引擎。
  • 支持向量存储引擎 VectorDB。
  • 支持 RDMA 的高速网络通讯框架。
  • 引入新的数据结构 Tensor,更好的支持深度学习与 AI;支持与 Ray 等分布式机器学习框架集成。
  • 进一步完善 Shark CPU-GPU 异构计算平台,增加更多的内置算子,将 Shark 引擎用于大规模因子计算。
  • 增强计算节点能力,进一步完善存算分离功能。
  • 为嵌入式版本 Swordfish 增加 Python 和 Java 接口,方便 Python 和 Java 用户调用。

2. 使用说明

  • 新版本中的绝大部分功能,下载社区版即可免费使用:产品 - DolphinDB
  • 高频回测和模拟撮合插件,企业版用户可直接体验。
  • 若使用 CEP 引擎与订单簿引擎,请私信 DolphinDB 官方账号或销售申请对应的许可证。
  • 若使用 Shark GPLearn,请下载GPU版本,并联系官方账号或销售申请独立的 GPU 许可证。
  • 若使用Swordfish,请下载嵌入式版本,并联系官方账号或销售申请独立的 Swordfish 许可证。

试用过程中遇到任何问题,欢迎留言或私信官方账号提交反馈,我们期待听到你们的声音~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/546723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio通过修改文件gradle-wrapper.properties内容下载gradle

一、问题描述 在Android Studio中新建项目后会下载你所新建的项目的activity/gradle/wrapper目录下所配置的gradle-7.3.3-bin.zip包&#xff08;笔者的是该版本包&#xff09;&#xff0c;而大多数时候会下载失败&#xff0c;如下 二、解决办法 新建工程后&#xff0c;取消下…

使用 Fn Project 搭建无服务平台

目录 下载 脚本直接下载 下载可执行文件 上传 启动 Fn 服务 初始化 Fn 工程 创建 app 部署 function 调用 function JSON 入参 官方文档 下载 有两种下载方式 脚本直接下载 直接在服务器执行该命令即可 curl -LSs https://raw.githubusercontent.com/fnproject/…

10、【代理模式】通过引入一个代理对象来控制对原始对象的访问的方式。

你好&#xff0c;我是程序员雪球。 今天我们了解代理模式的原理、静态代理和动态代理的区别、Spring AOP 和动态代理的关系、代理模式的使用场景&#xff0c;以及用 Java 实现一个动态代理示例 一、代理模式的原理 代理模式是一种设计模式&#xff0c;它提供了一种通过引入一个…

【十一】MyBatis Plus 原理分析

MyBatis Plus 原理分析 摘要 Java EE开发中必不可少ORM框架&#xff0c;目前行业里最流行的orm框架非Mybatis莫属了&#xff0c;而Mybatis框架本身没有提供api实现&#xff0c;所以市面上推出了Mybatis plus系列框架&#xff0c;plus版是mybatis增强工具&#xff0c;用于简化My…

量子飞跃:从根本上改变复杂问题的解决方式

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨王珩 编译/排版丨沛贤 深度好文&#xff1a;1000字丨5分钟阅读 利用多功能量子比特的量子计算机已处于解决复杂优化问题的最前沿&#xff0c;例如旅行商问题&#xff0c;这是一个典型的…

虚良SEOPython脚本寄生虫程序源码

本程序&#xff0c;快速收录百度首页&#xff0c;3-5天就可以有流量&#xff0c;长期稳定&#xff0c;可以设置自动推送。 点这里 Python脚本寄生虫程序源码&#xff08;寄生虫电影脚本&#xff09; - 虚良SEO 模板可以自己修改&#xff0c;源码带模板标签说明&#xff0c;简…

AI大模型日报#0415:贾佳亚团队新作王炸、马斯克首款多模态大模型、ChatGPT to B

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 融合ChatGPTDALLE3&#xff0c;贾佳亚团队新作开源&#xff1a;识图推理生图一站解决 摘要: 贾佳亚团队推出了多模态模型Mini-Gem…

day58 回文子串 最长回文子序列

题目1&#xff1a;647 回文子串 题目链接&#xff1a;647 回文子串 题意 统计字符串s中回文子串的数目 回文子串是正着读和倒过来读一样的字符串 子串是连续字符组成的一个序列 动态规划 动规五部曲 1&#xff09;dp数组及下标i的含义 dp[i][j] 表示 [s[i]&#xf…

转移插槽简介

4.3.4.转移插槽 我们要将num存储到7004节点&#xff0c;因此需要先看看num的插槽是多少&#xff1a; 如上图所示&#xff0c;num的插槽为2765. 我们可以将0~3000的插槽从7001转移到7004&#xff0c;命令格式如下&#xff1a; 具体命令如下&#xff1a; 建立连接&#xff1a;…

【读书笔记】自动驾驶与机器人中的SLAM技术——高翔

文章会对本书第五章节及以后章节进行总结概括。每日更新一部分。一起读书吧。 第五章——基础点云处理 重点&#xff1a;点云的相邻关系是许多算法的基础 5.1 激光雷达传感器与点云的数学模型 5.1.1激光雷达传感器的数学模型 雷达有两种&#xff1a;机械旋转式激光雷达&…

RocketMQ集群配置

我们集群部署采取采用2m-2s&#xff08;同步双写&#xff09;方式&#xff0c;每个Master配置一个Slave&#xff0c;有多对Master-Slave&#xff0c;HA采用同步双写方式&#xff0c;即只有主备都写成功&#xff0c;才向应用返回成功. 1、服务器环境 序号IP角色架构模式1192.16…

一文详解MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM及其关系

经常遇到很多系统&#xff0c;比如&#xff1a;MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM、EAM&#xff0c;这些都是什么系统&#xff1f;有什么功能和作用&#xff1f;它们之间的关系是怎样的&#xff1f; 今天就一文详细分享给大家。 10大系统之间的关系 ERP 和其他…

深度学习之PyTorch实现卷积神经网络(CNN)

在深度学习领域&#xff0c;卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;是一种非常强大的模型&#xff0c;专门用于处理图像数据。CNN通过卷积操作和池化操作来提取图像中的特征&#xff0c;具有较好的特征学习能力&#xff0c;特别适用…

机器学习算法快速入门

文章目录 0.简介1.常用术语1) 模型2) 数据集3) 样本&特征4) 向量5) 矩阵6)假设函数&损失函数7&#xff09;拟合&过拟合&欠拟合 2.线性回归3.梯度下降求极值4.Logistic回归算法&#xff08;分类问题&#xff09;5.KNN最邻近分类算法6.朴素贝叶斯分类算法7.决策树…

Python调用微信OCR识别文字和坐标

原理 在看雪看到一篇文章&#xff1a;逆向调用QQ截图NT与WeChatOCR-软件逆向。里面说了怎么调用微信和QQ本地的OCR模型&#xff0c;还有很详细的分析过程。 我稍微看了下文章&#xff0c;多的也看不懂。大概流程是使用mmmojo.dll这个dll来与WeChatOCR.exe做通信的&#xff0c…

1688拍立淘接口:图像识别技术引领电商搜索新革命,打造智能购物新体验!

1688拍立淘接口&#xff1a;技术解析与应用实践 一、引言 在电子商务蓬勃发展的今天&#xff0c;图像识别技术正逐渐成为各大电商平台提升用户体验、优化搜索效率的关键技术之一。作为阿里巴巴旗下的B2B采购批发平台&#xff0c;1688也紧跟技术潮流&#xff0c;推出了拍立淘接…

Dos命令的基础

雷迪斯and the乡亲们 欢迎你们来到 奇幻的编程世界 一、DOS命令基础 提示符 根目录&#xff1a;进入大到分区后&#xff0c;最外层的目录就是跟目录 工作目录&#xff1a;当前的所在位置/所在文件夹 二、cd命令 切换工作目录&#xff1a; cd 格式&#xff1a; cd 目标 …

巧避海森堡不确定性原理!量子比特读出技术重磅突破

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;1200字丨7分钟阅读 摘要&#xff1a;阿尔托大学研究人员用微测辐射热计替代传统参数放大器&#xff0c;以更少的附加噪声实现非侵入式量子比特测量…

排序链表 - LeetCode 热题 33

大家好&#xff01;我是曾续缘&#x1f639; 今天是《LeetCode 热题 100》系列 发车第 33 天 链表第 12 题 ❤️点赞 &#x1f44d; 收藏 ⭐再看&#xff0c;养成习惯 排序链表 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a…

带你追踪 ICASSP 2024会议现场 韩国夜景令人陶醉

会议之眼 快讯 昨天&#xff0c;2024年的ICASSP&#xff08;International Conference on Acoustics, Speech, and Signal Processing&#xff09;即国际声学、语音和信号处理会议已经在韩国首尔拉开帷幕&#xff01;吸引了众多热情的与会者&#xff01;本届ICASSP会议举办日期…