数据传输 | dtle 使用初探

初试DTLE-单向-聚合-分散复制 环境准备 主机名 IP地址 部署服务 study01 10.186.65.68 DTLE、MySQL study02 10.186.65.71 DTLE、MySQL study03 10.186.65.72 DTLE、MySQL Ps:如果不适用容器进行部署,首先安装三台或以上MySQL实例,并开启binlog以及GTID DTLE概述 dtle (Data-Transformation-le) 是上海爱可⽣信息技术股份有限公司 开发并开源的 CDC ⼯具. 其功能特点是: 阅读详情

作者:马莹乐

爱可生研发团队成员,负责 mysql 中间件和数据库管理平台的测试。擅长找茬(测试技术爱好者),欢迎大家试用 dtle~

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


dtle 是一款爱可生 MySQL 开源数据传输中间件,此文简要介绍初步使用方法。

项目地址:https://github.com/actiontech/dtle

 

一、下载安装

环境说明:

  • 准备三台主机,主机名分别为:node4、node5、node6

  • 三台均为 agent,另将 node4 和 node5 作为 manager

1.1 下载

下载 dtle 最新的 release rpm 包

地址:https://github.com/actiontech/dtle/releases

dtle 安装包下载:

wget https://github.com/actiontech/dtle/releases/download/v2.19.11.0/dtle-2.19.11.0.x86_64.rpm

 

1.2 安装

安装步骤:

https://actiontech.github.io/dtle-docs-cn/4/4.0_installation.html

分别将 node4,node5 和 node6 的 dtle 安装完成。

 

1.3 启动 dtle

dtle 安装完成后,并未启动,需要先配置 dtle 的 conf 文件,再启动。

 

1.4 配置 dtle.conf

配置相关说明:

https://actiontech.github.io/dtle-docs-cn/4/4.1nodeconfiguration.html

dtle.conf 准备:以下配置文件替分别替换原有 dtle.conf(/opt/dtle/etc/dtle/dtle.conf)

node4 的 dtle.conf

# Setup data dir
data_dir = "/opt/dtle/data"
log_level = "DEBUG"
log_file = "/opt/dtle.log"
#log_to_stdout = true

bind_addr = "172.100.9.4"

# Modify our port to avoid a collision with server
ports {
http = 8190
}

# Enable the manager
manager {
enabled = true

# Self-elect, should be 3 or 5 for production,
# Addresses to attempt to join when the server starts.
join = [ "172.100.9.4","172.100.9.5" ]
}

# Enable the agent
agent {
enabled = true
managers = ["172.100.9.4:8191","172.100.9.5:8191"]
}

metric{
collection_interval = "15s"
publish_allocation_metrics = "true"
publish_node_metrics = "true"
}
addresses {
http = "172.100.9.4"
rpc = "172.100.9.4"
serf = "172.100.9.4"
}
advertise {
http = "172.100.9.4"
rpc = "172.100.9.4"
serf = "172.100.9.4"
}

node5 的 dtle.conf

# Setup data dir
data_dir = "/opt/dtle/data"
log_level = "DEBUG"
log_file = "/opt/dtle.log"
#log_to_stdout = true

bind_addr = "172.100.9.5"

# Modify our port to avoid a collision with server
ports {
http = 8190
}

# Enable the manager
manager {
enabled = true

# Self-elect, should be 3 or 5 for production,
# Addresses to attempt to join when the server starts.
join = [ "172.100.9.4","172.100.9.5" ]
}

# Enable the agent
agent {
enabled = true
managers = ["172.100.9.4:8191","172.100.9.5:8191"]
}

metric{
collection_interval = "15s"
publish_allocation_metrics = "true"
publish_node_metrics = "true"
}

addresses {
http = "172.100.9.5"
rpc = "172.100.9.5"
serf = "172.100.9.5"
}
advertise {
http = "172.100.9.5"
rpc = "172.100.9.5"
serf = "172.100.9.5"
}

node6 的 dtle.conf

# Setup data dir
data_dir = "/opt/dtle/data"
log_level = "DEBUG"
log_file = "/opt/dtle.log"
#log_to_stdout = true

bind_addr = "172.100.9.6"

# Modify our port to avoid a collision with server
ports {
http = 8190
}

# Enable the manager
manager {
enabled = false

# Self-elect, should be 3 or 5 for production,
# Addresses to attempt to join when the server starts.
join = [ "172.100.9.4","172.100.9.5" ]
}

# Enable the agent
agent {
enabled = true
managers = ["172.100.9.4:8191","172.100.9.5:8191"]
}

metric{
collection_interval = "15s"
publish_allocation_metrics = "true"
publish_node_metrics = "true"
}

addresses {
http = "172.100.9.6"
rpc = "172.100.9.6"
serf = "172.100.9.6"
}
advertise {
http = "172.100.9.6"
rpc = "172.100.9.6"
serf = "172.100.9.6"
}

 

1.5 启动 dtle

启动命令说明:

https://actiontech.github.io/dtle-docs-cn/4/4.2_command.html

 

 

1.6 查看 3 个节点 dtle 进程

node 4

 

node 5

 

node 6

 

1.7 尝试查看 dtle 架构是否符合预期

命令说明:

https://actiontech.github.io/dtle-docs-cn/4/4.2_command.html

 

其中,members 展示的是集群中 manager 节点的信息。

HTTP API:

https://actiontech.github.io/dtle-docs-cn/4/4.4httpapi.html

输出内容为 json 格式,可以安装 jq,使之格式化展示。

 

二、源端/目标端准备

MySQL 迁移用户准备。

2.1 创建用户

源端用户创建,

目标端用户创建,

有关源端/目标端用户的最小权限说明:

https://actiontech.github.io/dtle-docs-cn/4/4.5mysqluser_privileges.html

 

2.2 数据准备

源端数据准备,

目标端测试前库表情况,

 

2.3 创建 job

创建全量 + 增量,表级别迁移 job,分别使用 node5 和 node6 节点的 dtle 作为源端和目标端迁移的 agent。

job 配置相关参数:

https://actiontech.github.io/dtle-docs-cn/4/4.3jobconfiguration.html

2.3.1 准备 job.json

job.json

{
"Name":"have_a_try",
"Failover":false,
"Orders":[],
"Type":"synchronous",
"Tasks":[
{
"Type":"Src",
"NodeId":"ee97dc49-85ed-febc-4d3c-cfbfa87f46bd",
"Config":{
"Gtid":"",
"DropTableIfExists":false,
"SkipCreateDbTable":false,
"ApproveHeterogeneous":true,
"ReplChanBufferSize":"600",
"ChunkSize":"2000",
"ExpandSyntaxSupport":false,
"MsgBytesLimit":"20480",
"MsgsLimit":"65536",
"BytesLimit":"67108864",
"GroupMaxSize":"1",
"GroupTimeout":"100",
"SqlFilter":[],
"ReplicateDoDb":[
{
"TableSchema":"test",
"Tables":[
{
"TableName":"test1"
}
]
}
],
"ConnectionConfig":{
"Host":"172.100.9.1",
"Port":"3306",
"User":"src_test",
"Password":"test"
}
}
},
{
"Type":"Dest",
"NodeId":"e623aedd-5c37-da67-4ddf-1a82ce1ac298",
"Config":{
"ParallelWorkers":"1",
"ConnectionConfig":{
"Host":"172.100.9.2",
"Port":"3306",
"User":"dest_test",
"Password":"test"
}
}
}
]
}

其中 NodeId 可通过命令或者 HTTP API 查询得知。

2.3.2 创建 job

创建 job 试用 HTTP API:

https://actiontech.github.io/dtle-docs-cn/4/4.4httpapi.html

创建完成后查询 job 状态为 running。

job 详细信息可使用 HTTP API 查询,示例:

[
{
"CreateIndex":109,
"ID":"ba13f3e1-0630-f141-4c60-a1f36c61cdb3",
"JobModifyIndex":2372,
"JobSummary":{
"Constraints":null,
"CreateIndex":109,
"Datacenters":[
"dc1"
],
"EnforceIndex":false,
"Failover":false,
"ID":"ba13f3e1-0630-f141-4c60-a1f36c61cdb3",
"JobModifyIndex":2372,
"ModifyIndex":2372,
"Name":"have_a_try",
"Orders":[

],
"Region":"global",
"Status":"running",
"StatusDescription":"",
"Tasks":[
{
"Config":{
"GroupMaxSize":"1",
"ChunkSize":"2000",
"BinlogFile":"1.000002",
"MsgsLimit":"65536",
"GroupTimeout":"100",
"DropTableIfExists":false,
"ExpandSyntaxSupport":false,
"BytesLimit":"67108864",
"MsgBytesLimit":"20480",
"ReplChanBufferSize":"600",
"NatsAddr":"172.100.9.6:8193",
"ApproveHeterogeneous":true,
"SqlFilter":[

],
"BinlogPos":4261,
"ConnectionConfig":{
"Host":"172.100.9.1",
"Port":"3306",
"User":"src_test",
"Password":"*"
},
"TrafficAgainstLimits":0,
"Gtid":"8868d98f-af5e-11e8-9aa9-0242ac110002:1-16",
"ReplicateDoDb":[
{
"TableSchema":"test",
"Tables":[
{
"TableName":"test1"
}
]
}
],
"SkipCreateDbTable":false
},
"ConfigLock":{

},
"Constraints":null,
"Driver":"MySQL",
"Leader":false,
"NodeID":"ee97dc49-85ed-febc-4d3c-cfbfa87f46bd",
"NodeName":"",
"Type":"Src"
},
{
"Config":{
"BinlogFile":"1.000002",
"BinlogPos":4261,
"ConnectionConfig":{
"Host":"172.100.9.2",
"Port":"3306",
"User":"dest_test",
"Password":"*"
},
"Gtid":"8868d98f-af5e-11e8-9aa9-0242ac110002:1-16",
"ParallelWorkers":"1",
"NatsAddr":"172.100.9.6:8193"
},
"ConfigLock":{

},
"Constraints":null,
"Driver":"MySQL",
"Leader":true,
"NodeID":"e623aedd-5c37-da67-4ddf-1a82ce1ac298",
"NodeName":"",
"Type":"Dest"
}
],
"Type":"synchronous"
},
"ModifyIndex":2372,
"Name":"have_a_try",
"Status":"running",
"StatusDescription":"",
"Type":"synchronous"
}
]

 

2.4 查询目标端迁移情况

目标端迁移前后对比:

新增两个库其中 test 库是我们 job 迁移的结果。

dtle 库相关说明:

https://actiontech.github.io/dtle-docs-cn/3/3.3impacton_dest.html

 

2.5 在源端执行普通 DML 操作

2.6 在源端执行普通 DDL 操作

 

 

小结

更多用法,详见项目文档,欢迎试用~

https://actiontech.github.io/dtle-docs-cn/

 

dtle:MySQL的分布式数据传输服务 dtle(Data-Transformation-le) 什么是干粉 dtle是MySQL数据传输/复制工具。 压缩碎片可以压缩传输中的数据,从而节省了成本。 双向数据同步数据块可以双向同步数据,这使得Master-Master MySQL体系结构 云杂点之间的复制可以在云RDS之间复制数据 分布式部署点作为分布式服务,可提供高可用性和可伸缩性 文献资料 英语(即将推出) 贡献 我们欢迎您的贡献,也非常感谢。 有关提交补丁和贡献工作流程的详细信息,请参见。 社区 QQ群:852990221 在微信上订阅“ Actiontech开源社区”以获取有关dtle的更多信息: 联系我们 dtle有 立即下载

相关推荐

数据库原理(萨师煊)课件

这里包含了数据库概述,关系数据库模型,关系数据库语言SQL,数据库设计,关系规范化理论,数据库保护的内容,挺详细的需要可下看看

跨机房数据双向同步工具之DTLE(更新中)

一、环境说明 2节点DTLE: test_node1:192.168.222.76 角色:server+client test_node2:192.168.222.77 角色:client 二、安装 准备安装包: https://github.com/actiontech/dtle/releases rpm -ivhdtle-3.20.08.0.x86_64.rpm 三、配置 配置文件位于:/etc/dtle/consul.hcl、/etc/dtle/nomad.hcl ...

leonpenn的博客 *你本如虎,正当添翼* 1382

Python库 | dtale-1.48.0-py3.9.egg

资源分类:Python库 所属语言:Python 资源全名:dtale-1.48.0-py3.9.egg 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

WebDNN高级技巧:10个提升模型推理速度的优化策略

WebDNN作为浏览器中最快的深度学习模型运行框架,支持直接加载ONNX模型并通过多种后端优化实现高效推理。本文将分享10个经过验证的高级优化策略,帮助开发者充分发挥WebDNN的性能潜力,显著提升模型在浏览器环境中的运行速度。 ## 1. 选择最优后端架构 WebDNN提供多后端支持,需根据目标设备特性选择最佳执行环境: - **WebGPU**:支持最新GPU特性的设备优先选择,通过[sr

gitblog_00347的博客 521

Frigate进阶玩法:如何用MQTT和Python脚本扩展你的自定义目标检测算法

本文详细介绍了如何通过MQTT和Python脚本扩展Frigate的自定义目标检测算法,无需修改源码即可实现特殊场景(如工业设备异常、农业病虫害识别)的高效检测。文章涵盖Frigate配置、外部检测服务构建、高级集成技巧及性能优化实践,帮助开发者灵活扩展智能监控能力。

weixin_42662293的博客 348

Matlab+Matpower实战:手把手教你生成IEEE14节点FDIA攻击数据集(附完整代码)

本文提供了一份基于Matlab与Matpower工具构建IEEE14节点FDIA攻击数据集的完整实战指南。通过动态负荷数据模拟、潮流计算、状态估计及隐蔽攻击向量注入,手把手教你生成可用于电力系统网络安全研究的仿真数据集,并附有核心代码与调试技巧。

bean的博客 397

数据传输 | 利用 DTLE 将 MySQL 数据同步到 DBLE

作者:任仲禹 爱可生 DBA 团队成员,擅长故障分析和性能优化,文章相关技术问题,欢迎大家一起讨论。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 背景 源于某客户的需求,存在线上某业务 MySQL 库因为数据量及业务读写压力较大,需要将业务数据迁移到 DBLE 分布式数据库,但同时因为业务为 7x24h,能够停机的时间窗口较短,所以需要考虑数据实时同步的方案。 过往 DBLE 的业务上线基本为全新部署,数据实时同步的情况极少实施,去年 DTLE .

ActionTech的博客 1471

时空图神经网络实战:T-GCN在交通流量预测中的深度解析

本文深度解析了时空图神经网络T-GCN在交通流量预测中的实战应用。通过结合图卷积网络(GCN)和门控循环单元(GRU),T-GCN有效捕捉交通数据的时空依赖性,相比传统方法降低30%以上预测误差。文章详细介绍了T-GCN的核心技术、工程实践和优化策略,为智能交通系统提供有力工具。

weixin_29038537的博客 267

数据传输 | dtle 之库表重命名

作者:陈怡 爱可生南分团队 DBA,负责公司自动化运维平台维护和处理客户问题。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 前言 DTLE 是开源的数据传输组件,支持 MySQL 多种使用场景的数据传输。 可能会遇到这样的场景,将数据传输到目的端时,目的端的库名想要与源端的库名不一样。或者传输到目的端时,库名与源端的一样,但是想重命名表名与源端的不同。本文将简单介绍 DTLE 如何设置满足这样的场景。 安装部署 1、3.21.10.0 版本 rp.

ActionTech的博客 406

QGIS三维地形可视化实战:从DEM数据到炫酷3D场景(附Qgis2threejs插件配置)

本文详细介绍了如何利用QGIS和Qgis2threejs插件,将DEM数据转化为交互式三维地形场景的完整工作流。核心内容包括DEM数据准备、坐标系选择(重点对比WGS 84与UTM的差异及影响)、插件核心参数配置、卫星影像与等高线叠加等进阶技巧,并提供了成果导出与常见问题解决方案,帮助用户高效创建可用于网页展示的炫酷3D可视化成果。

mqtt6iot的博客 875

嵌入式GUI显示驱动配置实战:从emWin硬件接口到SPI屏驱动优化

在嵌入式系统开发中,显示驱动是连接GUI库与物理屏幕的核心底层模块,其本质是CPU与显示控制器之间的数据“翻译”与“传输”系统。其工作原理是通过实现特定的硬件抽象层接口,将GUI生成的图形数据转换为屏幕能识别的时序和协议。这项技术的核心价值在于,它允许开发者在资源受限的MCU上,通过适配不同的硬件接口,以最小的硬件开销实现稳定的图形输出。其典型应用场景包括智能家居面板、工业HMI、可穿戴设备等嵌入式图形界面开发。本文将深入解析emWin GUI库的驱动框架,重点探讨如何针对SPI、I2C等串行接口进行高效的

weixin_29159711的博客 341

数据传输_数据传输 | dtle 使用初探

作者:马莹乐爱可生研发团队成员,负责 mysql 中间件和数据库管理平台的测试。擅长找茬(测试技术爱好者),欢迎大家试用 dtle~本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。dtle 是一款爱可生 MySQL 开源数据传输中间件,此文简要介绍初步使用方法。项目地址:https://github.com/actiontech/dtle一、下载安装...

weixin_30094815的博客 249

MFC使用Websocket通讯介绍和实例(附完整源码)

踩坑点,下载了好几个boost版本编译,经常出问题,后来搜索了好久资料才发现如下评论:WebSocket++0.8.2 has been tested through Boost 1.72。WebSocketpp依赖于boost,因此在使用WebSocketpp前需要编译Boost;所以我们直接下载Boost 1.72的windows版的进行安装,安装完成还需要编译;WebSocketpp也叫WebSocket++;服务编译好之后,使用。

weixin_42530684的博客 1171

c使用tcp传输的二进制数据_数据传输 | dtle 使用初探

作者:马莹乐爱可生研发团队成员,负责 mysql 中间件和数据库管理平台的测试。擅长找茬(测试技术爱好者),欢迎大家试用 dtle~本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。dtle 是一款爱可生 MySQL 开源数据传输中间件,此文简要介绍初步使用方法。项目地址:https://github.com/actiontech/dtle一、下载安装...

weixin_39760433的博客 236

Linux命令行入门:从零掌握服务器运维与Shell脚本基础

在信息化时代,操作系统是数字世界的基石,而终端命令行则是高效驾驭服务器的核心技能。无论是软件部署、服务监控还是故障排查,掌握基于Shell的指令操作都能大幅提升工程效率。从最基础的文件目录管理、文本处理,到权限控制、进程监控与网络调试,命令行提供了一套强大且可自动化的操作范式。尤其对于运维工程师和开发者而言,理解管道、重定向以及脚本化任务,意味着将重复劳动转化为可复用的自动化流程。本文从环境准备讲起,系统梳理常用Linux命令的实际场景与输出验证,并延伸至Shell脚本编写与定时任务,帮助初学者快速建立从操

weixin_30522983的博客 255

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1861

数据传输 | dtle 之 job 实现简析

作者:吕海龙 爱可生 DTLE 团队成员,负责 DTLE 开发 ,日常问题处理以及相关问题的排查。 本文来源:原创投稿 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 从 job 文件到源端目标端的数据传输,dtle 到底是如何行实现的的,传输过程中的高可用,又是由谁实现呢,下面,我们就简单的介绍一下,job 的实现的大体流程。 结构 如上图所示,在 job ...

ActionTech的博客 427

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数据传输 | ​如何开启 DTLE 的 HTTPS 访问模式

作者:刘安 爱可生测试团队成员,主要负责 DTLE 开源项目相关测试任务,擅长 Python 自动化测试开发。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 如何开启DTLE的HTTPS访问模式 DTLE默认提供的是HTTP的访问模式,但是在使用DTLE的过程中不免要通过API提交诸如数据库的用户名、密码、IP、端口等信息。如果这些信息被第三方获取到,那么对于数据库的使用者简直就是一场灾难。因此DTLE提供了HTTPS的访问模式,保护我们的信息安全。

ActionTech的博客 3565

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据传输 | 如何配合 pt-osc 使用 DTLE 同步 DDL

作者:刘安 爱可生测试团队成员,主要负责 DTLE 开源项目相关测试任务,擅长 Python 自动化测试开发。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 如何配合pt-osc使用DTLE同步DDL 背景:在社区群里有同学询问,源库使用pt-osc做表DDL变更,DTLE是否支持? 1. pt-osc的原理 1). 创建一个与原表结构相同的空表,表名是_原表名_new 2). 修改步骤 1 创建的空表的表结构 3). 在原表上添加三个触发器:.

ActionTech的博客 1024

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数据传输 | DTLE Release Notes 详细解读 2.19.07.0

2.19.07.0 版本 DTLE Release Notes 以下对 DTLE 2.19.07.0 版本的 Release Notes 进行详细解读。 文章主要分为三部分内容: 一、DTLE 项目介绍 二、改进/产品特点 三、Bug 修复 四、DTLE Release Notes 一、DTLE 项目介绍 8月14日,开源数据传输组件 DTLE 最新版本 2.19...

ActionTech的博客 566

数据传输_数据传输 | DTLE 3.20.08.0 来啦

3.20.08.0 版本 DTLE Release Notes开源数据传输组件 DTLE 3.20.08.0 已于今日发布。一、DTLE 项目介绍爱可生开源社区的 DTLE ,自开源起一直定位于一款针对 MySQL 使用特点、支持多种使用场景的数据传输组件,希望能够解决当前 MySQL 应用中保障数据传输质量、能够适配复杂场景、提供多样功能的问题。DTLE 获取版本库:https://github...

weixin_39843338的博客 121

mysql job_MySQL数据传输中dtle 之 job 实现简析-爱可生

原标题:MySQL数据传输中dtle 之 job 实现简析-爱可生作者:吕海龙爱可生 DTLE 团队成员,负责 DTLE 开发 ,日常问题处理以及相关问题的排查。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。从 job 文件到源端目标端的数据传输,dtle 到底是如何实现的?传输过程中的高可用,又是由谁实现呢?下面,我们就简单的介绍一下,job 实...

weixin_32529407的博客 216

数据传输 | DTLE 在弱网络环境下的性能报告

作者:刘安 爱可生测试团队成员,主要负责 DTLE 开源项目相关测试任务,擅长 Python 自动化测试开发,最近醉心于 Linux 性能分析优化的相关知识。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 背景条件: 使用 sysbench 压力工具对 10 张 1 万记录表进行增改删操作 使用 TC 工具来模拟高延时,低带宽场景 工具准备: 1.tc # 模拟网络带宽受限以及增加延迟 2.iperf3 # 验证网络带宽 3.sysben.

ActionTech的博客 451

数据传输 | DTLE Release Notes 详细解读 2.19.11.0

​2.19.11.0 版本 DTLE Release Notes 以下对 DTLE 2.19.11.0 版本的 Release Notes 进行详细解读。 文章主要分为四部分内容: 一、DTLE 项目介绍 二、版本特征 三、Bug 修复 四、DTLE Release Notes 一、DTLE 项目介绍 11月28日,开源数据传输组件 DTLE 最新版本 2.19.11.0 发布。 DTLE 自...

ActionTech的博客 441

数据传输 | 如何搭建 DTLE 的监控系统

作者:刘安 爱可生测试团队成员,主要负责 DTLE 开源项目相关测试任务,擅长 Python 自动化测试开发,最近醉心于 Linux 性能分析优化的相关知识。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 背景: 虽然在 DTLE 的文档里提供各种监控项的介绍,但是对于不熟悉 prometheus 和 grafana 配置的同学来说上手还是有些难度的。今天我就来 DTLE 3.21.07.0 来搭建一个 DTLE 的监控系统。 一、搭建 DTLE .

ActionTech的博客 315

数据传输 | DTLE并行回放性能测试报告

作者:刘安 爱可生测试团队成员,主要负责 DTLE 开源项目相关测试任务,擅长 Python 自动化测试开发。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 背景: 在 3.21.07.0 之前 DTLE 也支持并行回放,但是需要事务在源端 MySQL 执行时就要多线程并行执行,并且还要处于同一个组提交中。如此苛刻的条件导致虽然在传输任务中配置了目标端的并发数,但是很难真正的触发DTLE并行回放。 当然如果源端 MySQL 配置了 binlog_t.

ActionTech的博客 375
上一篇: 第05问:MySQL 在处理临时结果集时,内部临时表会使用多少内存?
下一篇: 技术分享 | MySQL Test 初探
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值