TDengine 零代码数据接入:通过 taosExplorer 将 CSV 文件导入 TDengine 集群实战指南
TDengine 零代码数据接入通过 taosExplorer 将 CSV 文件导入 TDengine 集群实战指南【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineCSV逗号分隔值是最常见的数据交换格式之一广泛存在于各类业务系统、工控设备与历史数据导出中。TDengine 内置的零代码数据接入平台taosExplorer提供了开箱即用的 CSV 数据源用户无需编写一行代码即可在浏览器中通过表单配置把本地 CSV 文件或服务器目录中的 CSV 文件持续导入 TDengine 集群。本文基于官方文档 CSV File系统讲解任务创建、CSV 解析选项、文件监听、字段提取/拆分/过滤/映射以及异常处理策略等完整流程帮助读者快速搭建从 CSV 到 TDengine 的稳定数据管道。说明CSV 数据源属于零代码接入的 taosX 数据同步能力之一该能力适用于 TDengine 企业版Enterprise环境社区版用户请以实际发布版本为准。功能概述通过 taosExplorer 的数据写入Data Writing界面可以将一个或多个 CSV 文件的数据导入 TDengine。整个过程完全可视化、零编码TDengine 会自动完成 CSV 的解析、字段提取与拆分、数据过滤、字段映射与类型转换最终将数据写入目标超级表Supertable的子表中从而省去部署独立 ETL 工具的环节简化整体架构。在零代码接入体系中CSV 与 MQTT、Kafka、MySQL、Oracle、PostgreSQL 等数据源并列完整清单见 数据连接器总览。与流式数据源不同的是CSV 属于文件型数据源其数据接入天然具备“任务驱动 文件级断点续传”的特性任务会根据配置从文件读取并处理数据并在处理过程中持久化“文件名 已消费行数”任务中断后可据此从下一行继续详见后文“断点续传”一节。创建任务创建 CSV 接入任务共分为五步新增数据源 → 配置基本信息 → 配置 CSV 选项 → 配置解析与映射 → 提交任务。下面按顺序展开。新增数据源登录 taosExplorer 后进入左侧导航栏的数据写入Data Writing任务列表页面点击Add Data Source新增数据源按钮进入新建任务页面。配置基本信息在新任务页面中完成以下三项基础配置Name名称输入任务名称例如test_csv用于在任务列表中标识该任务。Type类型从下拉列表中选择CSV。Target Database目标数据库从下拉列表中选择一个目标数据库如果尚未创建数据库也可以点击右侧的Create Database按钮现场创建。配置 CSV 选项CSV 选项用于定义 CSV 文件的解析规则决定文件内容如何被切分为字段和行共包含五项配置配置项说明默认值Include Header包含表头开关。开启后CSV 文件第一行将被视为列信息表头不作为数据写入关闭Ignore First N Rows忽略前 N 行填写数字 N表示忽略 CSV 文件的前 N 行0Field Separator字段分隔符用于将行内容分隔为多个字段的字符,Field Enclosure字段引用符当字段内容中包含分隔符或换行符时用于包围字段内容以保证整个字段被正确识别Comment Prefix注释前缀符若 CSV 中某行以该字符开头则该行整行被忽略#其中“忽略前 N 行”与“包含表头”常组合使用例如文件前几行为说明文字、随后紧跟表头时可先忽略前 N 行再开启表头识别而“字段引用符”是正确处理包含逗号、换行等特殊字符的字段内容如Beijing, Chaoyang的关键配置务必与实际导出 CSV 的格式保持一致否则会出现字段错位。配置解析 CSV 文件CSV 文件的来源有两种模式上传 CSV 文件与监听文件目录。配置好数据源后即可进入“解析 → 提取/拆分 → 过滤 → 映射”的完整数据处理链路。配置数据源上传 CSV 文件在“上传 CSV 文件”标签页中点击Select File选取文件按钮选择一个或多个本地文件通过浏览器上传到 taosX 所在服务器作为数据源在Keep Processed Files保留已处理文件区域开启或关闭开启时文件处理完成后仍保留在服务器上关闭时处理完成后文件会被删除。配置数据源监听文件目录在“监听文件目录”标签页中适合数据文件持续落盘的自动化场景File Monitor Directory文件监听目录输入一个 taosX 所在服务器上的绝对路径该路径下的文件及子目录文件将作为数据源Match Pattern匹配模式输入一个正则表达式用于筛选过滤目录中的文件例如.*\.csv$仅匹配 CSV 文件Watch New Files监听新文件开启后任务永不停止持续处理目录中新增的文件关闭后不处理新增文件初始文件处理结束后任务进入完成状态Monitor Interval监听间隔输入数字配置监听新文件的时间间隔File Processing Order文件处理顺序选择“正序”或“倒序”。正序按文件名字典序从前到后处理倒序从后到前程序始终遵循先处理文件、后处理同级子目录的顺序。解析上传文件或配置监听目录后点击Parse解析按钮页面会读取文件中的示例数据并展示识别出的列与示例数据的解析结果便于确认 CSV 选项配置是否正确。从列中提取或拆分Extract or Split from Column解析得到的字段可能仍不满足目标表的要求。例如原始message字段值为abc-def希望按-拆分为message_0与message_1两个字段可在Extract or Split from Column从列中提取或拆分中配置一条拆分规则选择split拆分提取器separator分隔符填写-number数量填写2表示拆分为 2 个字段。拆分后字段的命名规则为{原字段名}_{序号}即message_0、message_1。规则支持多条点击Add新增添加更多提取规则点击Delete删除移除当前规则点击放大镜图标可预览提取或拆分结果。关于提取/拆分的通用原理在 数据连接器总览 中有更完整的说明除 split 规则外还可以使用**正则表达式Regex**规则通过命名捕获组(?field_name...)从字段中提取多个字段split 规则与 regex 规则提取出的字段类型均为字符串。过滤Filter过滤用于设定写入条件只有满足条件的数据行才会被写入 TDengine。在Filter过滤中填写过滤表达式例如填写id ! 1则只有id不等于 1 的数据才会被处理。支持多条过滤规则点击Delete删除当前规则点击Add新增添加更多规则点击放大镜图标预览过滤结果。说明过滤表达式的求值结果必须是布尔类型可用的比较运算符包括、、、、、!多个条件可用逻辑运算符、||、!组合。以字符串类型字段为例还支持is_empty()、contains()、starts_with()、ends_with()等函数例如location.starts_with(beijing) voltage 200。若解析字段类型与预期不符可使用类型转换函数parse_int(...)字符串转整型与parse_float(...)字符串转浮点型。表映射Table Mapping映射用于建立“源字段 → 目标超级表字段”的对应关系Target Supertable目标超级表从下拉列表中选择目标超级表也可以点击右侧的Create Supertable创建超级表按钮现场创建。由于普通表并非典型应用场景CSV 数据源当前不支持导入到普通表仅支持写入超级表的子表。Mapping映射填写目标超级表的子表名称例如t_${groupid}其中${groupid}为源字段占位符运行时会替换为对应字段值同时配置各源字段到超级表列含标签列的映射关系。点击Preview预览查看映射结果确认子表名称与列数据正确后进入下一步。零代码平台支持的通用映射规则详见 数据连接器总览包括mapping直接映射、value常量、generator生成器目前支持 now 时间戳生成器、join字符串拼接、format字符串格式化${}占位符、sum多字段求和与expr数值运算表达式支持 - * /及sin/cos/sqrt/exp/ln/floor/round等数学函数。子表名称本身也可用format表达式动态生成${groupid}即属此类用法。配置高级选项Advanced Options高级选项区域默认折叠点击展开。不同数据源的字段略有差异CSV 数据源常见选项如下Maximum Read Concurrency最大读取并发限制源端连接数或读取线程数默认0表示由连接器自动配置。当源端响应较慢且适合增加并发时可适当调大。Batch Size批量大小单次发送的最大消息数或行数默认值依数据源而定常见取值为1000或10000。Write Concurrency写入并发部分数据源提供指定可并发写入 TDengine 的任务数。此外自 v3.3.5.0 起任务列表会展示每个运行任务的健康状态可在高级选项中配置健康监控参数Health Check Duration健康检查时长计算任务状态的最近时间段、Busy State Threshold繁忙状态阈值队列中待写入项占写队列容量的比例默认100%、Max Write Queue Length最大写队列长度、Write Error Threshold健康检查周期内允许的写错误数超出即上报错误。健康状态取值包括 Ready、Idle、Active、Pending、Busy、Bounce、SourceError、SinkError、Fatal 等具体含义可参考 健康状态。配置异常处理策略Exception Handling Strategy异常处理策略区域默认折叠点击展开。当写入过程中出现异常数据时可按条件配置处理方式共四种通用策略Archive归档将无效数据写入归档文件默认存放于${data_dir}/tasks/id/datetime目录下不写入目标数据库Discard丢弃忽略无效数据Error报错上报错误Cache缓存当目标连接失败或资源不足时将数据写入缓存文件待目标恢复后继续写入。可针对以下条件分别配置处理策略异常条件可选策略目标连接超时归档 / 丢弃 / 报错 / 缓存目标数据库不存在归档 / 丢弃 / 报错表不存在归档 / 丢弃 / 报错 / 自动建表并重试主时间戳超出范围now - keep1~now 100y归档 / 丢弃 / 报错主时间戳为空归档 / 丢弃 / 报错 / 使用当前时间复合主键为空归档 / 丢弃 / 报错表名超过 192 字符归档 / 丢弃 / 报错 / 截断 / 截断并归档表名含非法字符如.归档 / 丢弃 / 报错 / 用配置字符串替换子表名模板变量为空丢弃 / 变量置空 / 用配置字符串替换列不存在归档 / 丢弃 / 报错 / 自动加列并重试列名超过 64 字符归档 / 丢弃 / 报错列值超出定义长度归档 / 丢弃 / 报错 / 截断 / 截断并归档 / 自动扩列后重试其他数据错误归档 / 丢弃 / 报错配套的附加设置包括Connection Timeout连接超时目标连接超时秒数取值范围1~600Temporary Storage Location临时存储位置相对${data_dir}/tasks/id/的路径Archive Retention Days归档保留天数非负整数0表示不限制Archive Available Space归档可用空间取值范围0~655350表示不限制Archive Location归档位置相对${data_dir}/tasks/id/的路径Archive Write Failure Strategy归档写入失败策略删除旧文件 / 丢弃数据 / 报错并停止任务。创建完成确认所有配置无误后点击Submit提交按钮即可完成 CSV 到 TDengine 数据同步任务的创建页面自动返回数据写入任务列表。若提交成功任务状态会切换为Running运行中若提交失败可通过任务的活动日志查看错误原因。查看运行指标在任务列表中点击View查看按钮可查看任务的运行指标。指标弹窗通常分为多个标签页展示任务多次运行的累计指标与本次运行的指标同时可以查看任务中所有文件的处理情况包括每个文件的处理进度与结果便于定位数据处理瓶颈或异常文件。任务管理在数据写入任务列表页可以对已创建的任务执行启动 / 停止操作以及查看 / 编辑 / 删除 / 复制操作。运行中的任务会实时展示写入记录数、流量等运行状态信息通过健康状态列可以快速判断任务当前处于 Ready、Active、Busy 或异常等何种状态从而及时进行参数或资源调优。断点续传CSV 任务的进度恢复机制taosX 的大部分数据源都支持从上次持久化的检查点checkpoint恢复任务详见 数据连接器总览。对于CSV 数据源任务在处理过程中会持久化当前文件名与已消费的行数当任务中断如进程重启、网络抖动或手动停止后再次启动时会自动定位到上次处理到的文件与下一行从断点继续导入而无需重新读取整个文件。这一机制配合“监听文件目录”模式可保障文件持续落盘场景下的数据导入不重复、不遗漏。总结从 CSV 到 TDengine 的数据接入无需任何编码只需在 taosExplorer 的数据写入页面依次完成“新增数据源 → 配置基本信息 → 配置 CSV 选项表头 / 忽略前 N 行 / 分隔符 / 引用符 / 注释前缀→ 配置数据源上传文件或监听目录→ 解析 / 提取拆分 / 过滤 / 映射 → 提交任务”即可。通过高级选项可调优读写并发与健康监控阈值通过异常处理策略可针对各类写入异常实现归档、丢弃、报错或缓存恢复配合文件级断点续传机制足以构建稳健可靠的 CSV 批式/准实时数据管道。更多底层机制与通用数据处理规则正则提取、类型转换、映射规则、健康状态定义等可继续参阅 零代码数据接入总览。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考