TDengine 零代码接入 Oracle:基于 taosExplorer 的数据迁移与实时同步实践

发布时间:2026/9/21 18:12:15
TDengine 零代码接入 Oracle:基于 taosExplorer 的数据迁移与实时同步实践 数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载Oracle 数据库是业界广泛使用的企业级关系数据库管理系统承载着大量历史业务数据。TDengine 通过 taosExplorer 与 taosX 提供零代码接入能力无需编写代码即可创建从 Oracle 到 TDengine 的数据迁移与实时同步任务并在写入过程中完成字段提取、拆分、过滤与映射。本文以 Oracle 接入文档 为主体结合仓库中的零代码接入总览docs/zh/08-data-ingest-and-delivery/01-no-code-ingestion/index.md与高级选项、异常处理策略等公共配置说明完整讲解从数据源创建、连接与认证配置、SQL 查询与子表拆分、数据映射到异常处理的全流程帮助你快速落地一套可运行的 Oracle → TDengine 同步链路。功能概述TDengine 可以高效地从 Oracle 读取数据并将其写入 TDengine从而实现两类典型场景历史数据迁移将 Oracle 中的存量时序数据一次性或分批迁移至 TDengine实时数据同步持续读取 Oracle 中新增的数据近乎实时地写入 TDengine。从仓库中 零代码数据写入总览 支持的数据源清单可以看到当前仓库支持的 Oracle 版本为11G / 12c / 19c。整个零代码接入平台基于 taosExplorerWeb 界面与 taosX数据采集与同步引擎构建系统架构如下平台内置了 ETL 能力在数据从 Oracle 写入 TDengine 的过程中可以执行解析、提取或拆分、过滤、转换四类操作从而统一命名空间、提升数据质量减少额外的 ETL 组件。你只需在浏览器中完成界面配置即可实现零代码接入。创建任务新增数据源登录 taosExplorer 后进入数据写入页面点击新增数据源按钮进入新增数据源页面如下图所示配置基本信息在名称字段中输入任务名称例如test_oracle_01。在类型下拉框中选择Oracle如下图所示。选择完成后页面中的字段会根据数据源类型发生变化代理非必填项。如有需要可以在下拉框中选择指定的代理也可以先点击右侧的创建新的代理按钮创建一个新的代理。代理用于承载 taosX 采集任务可部署在与源数据库网络可达的机器上。目标数据库必填项。可以先点击右侧的创建数据库按钮创建一个新的数据库也可以选择已存在的目标库。配置连接信息在连接配置区域填写源 Oracle 数据库的连接信息如下图所示连接信息一般包括源 Oracle 数据库的主机地址、端口与服务名或 SID等具体字段以界面实际展示为准。请确保 taosX 所在的代理机器能够访问该地址。配置认证信息用户输入源 Oracle 数据库的用户该用户必须在该组织中拥有读取权限密码输入源 Oracle 数据库中上方用户的登录密码。填写完成后点击检查连通性按钮即可检查上方填写的信息是否可以正常获取源 Oracle 数据库的数据。若连通性检查失败请按照页面返回的具体错误提示进行修改例如网络不通、账号权限不足、服务名错误等。配置 SQL 查询子表字段子表字段用于拆分子表的字段它是一条select distinct的 SQL 语句查询指定字段组合的非重复项通常与 transform 中的 tag 相对应。此项配置主要为了解决数据迁移乱序问题需要结合SQL 模板共同使用否则不能达到预期效果。使用示例如下子表字段填写语句select distinct col_name1, col_name2 from table表示使用源表中的字段col_name1与col_name2拆分目标超级表的子表在SQL 模板中添加子表字段占位符例如select * from table where ts ${start} and ts ${end} and ${col_name1} and ${col_name2}。运行时${col_name1}、${col_name2}会展开为等值条件如col_name1deviceA、col_name21而不是裸列名在transform中配置col_name1与col_name2两个 tag 映射。通过子表字段 SQL 模板占位符的组合同步任务会按设备等维度拆分查询使每个子表的数据在时间上单调有序地写入从而规避乱序带来的写入开销。SQL 模板SQL 模板是用于查询的 SQL 语句模板SQL 语句中必须包含时间范围条件且开始时间和结束时间必须成对出现。SQL 语句模板中定义的时间范围由源数据库中某个代表时间的列和下面定义的占位符组成。SQL 使用不同的占位符表示不同的时间格式要求具体有以下占位符格式${start}、${end}表示 RFC3339 格式时间戳如2024-03-14T08:00:000800${start_no_tz}、${end_no_tz}表示不带时区的 RFC3339 字符串如2024-03-14T08:00:00${start_date}、${end_date}表示仅日期。但 Oracle 中没有纯日期类型所以它会带零时零分零秒如2024-03-14 00:00:00。因此使用date ${end_date}时需要特别注意它不能包含 2024-03-14 当天数据如需包含当天数据应改用${end}或对日期做进一步处理。为了解决迁移数据乱序的问题应在查询语句中添加排序条件例如order by ts asc。时间范围与查询节奏配置项说明起始时间迁移数据的起始时间必填字段结束时间迁移数据的结束时间可留空。如果设置则迁移任务执行到结束时间后任务完成并自动停止如果留空则持续同步实时数据任务不会自动停止查询间隔分段查询数据的时间间隔默认 1 天。为了避免查询数据量过大一次数据同步子任务会使用查询间隔分时间段查询数据延迟时长与查询间隔配合使用。在实时同步数据场景中为了避免延迟写入的数据丢失每次同步任务会在时间间隔 延迟时长的时间点触发查询。例如时间间隔为 3600s延迟时长为 60 秒那么查询任务会在 09:01 时触发查询源数据库中 08:00–09:00 时间段的数据查询间隔与延迟时长组合的语义是每个同步周期查询[当前周期开始 - 延迟时长, 当前周期结束 - 延迟时长]之前的数据从而给源库迟到写入的数据留出缓冲窗口保证实时场景下的数据完整性。配置数据映射在数据映射区域填写数据映射相关的配置参数点击从服务器检索按钮从 Oracle 服务器获取示例数据用于后续提取、过滤与映射的预览在从列中提取或拆分中填写从消息体中提取或拆分的字段。例如将vValue字段拆分成vValue_0和vValue_1两个字段选择split提取器separator 填写分隔符,number 填写2在过滤中填写过滤条件例如填写Value 0则只有 Value 大于 0 的数据才会被写入 TDengine在映射中选择要映射到 TDengine 的超级表以及映射到超级表的列点击预览可以查看映射的结果。关于提取、拆分、过滤与映射的详细规则来自 零代码数据写入总览从列中提取或拆分使用split规则拆分时需要设置分隔符和拆分数量拆分后的字段命名规则为{原字段名}_{顺序号}例如vValue拆分为vValue_0、vValue_1也可以使用正则表达式的命名捕获组从字段中提取多个字段。过滤过滤条件表达式的结果必须是 boolean 类型。数值类型支持比较操作符、!、、、、字符串类型支持is_empty()、contains()、starts_with()、ends_with()、len等函数多个判断表达式可以使用逻辑操作符、||、!组合。字符串类型的字段如需参与数值比较可先用parse_int()、parse_float()等转换函数处理。映射将提取、拆分后的源字段对应到目标表字段支持mapping直接映射、value常量、generator时间戳生成器如now、join字符串连接、format字符串格式化如${year}-${month}-${day}、sum数值求和、expr数值运算表达式如temperature * 1.8 32等规则。子表名也可以通过format表达式定义。配置高级选项高级选项区域默认折叠点击右侧可展开详见 高级选项公共说明常见项如下最大读取并发数限制数据源连接数或读取线程数。默认0表示由采集器自动配置数据源响应较慢时可适当增大批次大小单次发送的最大消息数或行数默认值因数据源而异Oracle 场景下英文文档描述为10000写入并发数量部分数据源提供表示同时写入 TDengine 的并发任务数健康监测相关选项健康监测时段、Busy 状态阈值、写入队列长度、写入错误阈值等用于在任务列表页展示任务的健康状态。配置异常处理策略异常处理策略区域用于配置数据异常时的处理策略默认折叠点击右侧可展开详见 异常处理策略公共说明通用处理策略说明归档将异常数据写入归档文件默认路径为${data_dir}/tasks/{任务id}/{时间戳}不写入目标库丢弃将异常数据忽略不写入目标库报错任务报错。各异常项及可选处理策略异常项可选策略目标库连接超时归档、丢弃、报错、缓存目标库恢复后重新入库目标库不存在归档、丢弃、报错表不存在归档、丢弃、报错、自动建表建表成功后重试主键时间戳溢出归档、丢弃、报错检查第一列时间戳是否在now - keep1到now 100y范围内主键时间戳空归档、丢弃、报错、使用当前时间填充复合主键空归档、丢弃、报错表名长度溢出归档、丢弃、报错、截断取前 192 字符、截断且归档表名非法字符归档、丢弃、报错、非法字符替换为指定字符串如a.b→a_b表名模板变量空值丢弃、留空、变量替换为指定字符串列名不存在归档、丢弃、报错、自动增加缺失列列名长度溢出归档、丢弃、报错列自动扩容开关选项打开时列数据长度超长将自动修改表结构并重试列长度溢出归档、丢弃、报错、截断、截断且归档数据异常归档、丢弃、报错其他未列出的数据异常此外还可配置连接超时目标库连接超时时间单位秒取值范围 1~600、临时存储文件位置实际生效位置为${data_dir}/tasks/{任务id}/{location}、归档数据保留天数非负整数0 表示无限制、归档数据可用空间0~655350 表示无限制、归档数据文件位置、归档数据失败处理策略删除旧文件 / 丢弃 / 报错并停止任务。创建完成点击提交按钮完成创建 Oracle 到 TDengine 的数据同步任务回到数据源列表页面即可查看任务执行情况。任务提交成功后状态会切换至运行中如果提交失败可通过查看该任务的活动日志查找错误原因。任务断点恢复与任务管理从仓库中 零代码数据写入总览 的说明可知taosX 大部分数据源支持从上次写入的断点中恢复Oracle 属于持久化记录上次查询的时间戳类型任务会持久化记录上次查询的时间戳在任务重新启动后从记录的时间戳开始继续查询从而保证迁移中断后不会重复或遗漏数据。在数据源列表页面还可以对任务进行启动、停止、查看、删除、复制等操作并查看各个任务的运行情况包括写入的记录条数、流量等。从v3.3.5.0开始任务管理列表中增加了健康状态一列用于指示任务运行过程中的健康状态常见状态包括Ready健康检查通过、Active正常运行且活跃、Idle监测时段内无数据处理、Pending写入端等待、Busy写入队列已满、Bounce写入存在错误且超阈值、SourceError数据源错误将尝试重连、SinkError写入端错误将尝试重连数据库、Fatal严重或无法恢复的错误。当健康状态为空时表示尚未有数据开始入库。小结通过 taosExplorer 的零代码界面可以在不编写任何程序的情况下完成 Oracle 到 TDengine 的数据迁移与实时同步。配置过程中的关键点包括连接与权限源 Oracle 用户需具备读取权限并通过检查连通性验证网络与账号配置SQL 模板必须包含成对出现的时间范围条件善用${start}/${end}、${start_no_tz}/${end_no_tz}、${start_date}/${end_date}三类占位符注意 Oracle 无纯日期类型带来的边界语义乱序治理通过子表字段 SQL 模板占位符实现按维度拆分查询并在 SQL 中加入order by ts asc排序实时性保障合理设置查询间隔 延迟时长避免延迟写入的数据丢失数据质量充分利用提取/拆分、过滤、映射规则完成数据清洗与转换并通过异常处理策略保证异常数据可追溯、任务可自愈断点续传Oracle 数据源会持久化记录查询时间戳任务重启后可从断点继续适合长时间运行的历史迁移与实时同步场景。如需深入了解零代码平台的完整能力数据源清单、转换规则、健康状态与断点恢复机制等可继续阅读 docs/zh/08-data-ingest-and-delivery/01-no-code-ingestion/index.md。赞分享数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载相关推荐TDengine 零代码接入 PostgreSQL基于 taosExplorer 的数据迁移与实时同步实战TDengine 零代码接入 PostgreSQL基于 taosExplorer 的数据迁移与实时同步实战 导读 本文以 docs/zh/08 data in数据库时序数据库物联网大数据实时分析云原生TDengine 零代码接入 Microsoft SQL Server基于 taosExplorer 的数据迁移与实时同步实战TDengine 零代码接入 Microsoft SQL Server基于 taosExplorer 的数据迁移与实时同步实战 TDengine 自企业版 v数据库时序数据库大数据物联网云原生TDengine 零代码接入 Oracle通过 taosExplorer 配置数据迁移与实时同步任务TDengine 零代码接入 Oracle通过 taosExplorer 配置数据迁移与实时同步任务 本篇技术指南介绍如何基于 TDengine 的零代码数据数据库时序数据库大数据物联网云原生上一篇老设备 4.14 内核 rootKernelSU 旧内核适配完整指南下一篇Riffusion革命性AI音乐生成如何用Stable Diffusion创作实时音频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考