数据库后端【免费下载链接】convex-backendThe open-source reactive database for app developers项目地址https://gitcode.com/gh_mirrors/co/convex-backend点击查看免费下载Convex 作为开源的反应式数据库reactive database其官方仓库 convex-backend 中提供了fivetran_sourcecrate一个面向 Fivetran 的 source connector允许开发者把 Convex 部署中的全部数据增量复制到任意 Fivetran 支持的数仓warehouse中。本指南基于 crates/fivetran_source/docs/overview.md 与 crates/fivetran_source/docs/setup-guide.md 编写并结合 crates/fivetran_source 的源码讲解其底层同步机制、类型转换规则与配置方式。读完本文你将掌握如何创建 Fivetran 连接、理解 Convex 类型到 Fivetran 类型的映射表、处理嵌套文档的落库方式并了解连接器基于data syncAPI 的增量同步原理。1. 连接器是什么fivetran_source是一个运行在 Fivetran 基础设施上的 gRPC 服务端实现 Fivetran Partner SDK 的SourceConnector接口。它通过 Convex 暴露的 HTTP API如POST /api/v1/data/sync读取部署数据再以 Fivetran 定义的 gRPC 协议把数据流式推送给 Fivetran 平台最终落到你的目标数据仓库中。crate 的 READMEcrates/fivetran_source/README.md明确说明This crate contains a source connector allowing developers using Convex to replicate the data they store in Convex to other databases.该连接器由 Convex 团队构建属于 Fivetran 的Partner-Built连接器对 Convex 的疑问需咨询 Convex 官方支持团队。2. 功能概览初始快照 CDC 增量同步连接建立后先抓取 Convex 部署的完整一致快照初始同步完成后通过 Change Data CaptureCDC以更新的一致视图增量同步变更。可配置同步频率后续增量同步的频率可在 Fivetran 侧配置。断点续传每次同步都从上次停止的位置恢复被中断的同步不会从头重来参见 crates/fivetran_source/docs/overview.md 的 Sync overview 一节。组件/表/字段级选择可在 Fivetran dashboard 上排除不需要同步的 Convex 组件、表和字段。Schema 自动映射将 Convex 的表与列结构自动复制到目标库遵循 Fivetran 的标准数据库更新策略。3. 前置条件连接 Convex 部署到 Fivetran 前你需要准备crates/fivetran_source/docs/setup-guide.md一个 ConvexProfessional 计划的账号。一个 Convex deployment部署实例。该部署的Deployment URL例如https://jaded-raven-991.convex.cloud。一个deploy key且只需授予deployment:data:view权限——这是连接器唯一需要的权限用于读取表的文档与 schema。可在 Production Deployment Settings 页面生成。注意deployment:data:view是连接器的最小权限要求无需授予任何写权限。4. 配置步骤4.1 获取部署凭据打开 Convex dashboard 进入你的部署。进入 Production Deployment Settings 页面。记录 Deployment URL。生成一个 deploy key并只开启deployment:data:view权限。记录该 deploy key与 Deployment URL 一起用于 Fivetran 配置。4.2 完成 Fivetran 配置在 connection setup form 中输入Destination schema prefix。该前缀会应用到每个复制的 schema且连接创建后不可更改。输入Deployment URL。输入Deploy Key。点击Save TestFivetran 会测试并验证与 Convex 部署的连接测试通过后即可开始同步。4.3 Setup testsFivetran 会执行以下测试校验部署凭据包括 deploy key 是否具备deployment:data:view权限。确认你使用的是 Convex Professional 计划。5. 同步机制从data syncAPI 说起连接器的数据同步核心是 Convex 的 data sync APIPOST /api/v1/data/sync一个分页的单一数据流同时覆盖部署数据的初始拷贝与后续变更crates/fivetran_source/README.md。在 crates/fivetran_source/src/sync.rs 中data_sync是一个异步流生成器其主循环为调用source.data_sync(cursor, selection)拉取一页数据。先处理page.truncates表需要清空重建的情况生成TRUNCATE操作。再遍历page.valuesdeleted为真时生成DELETE否则生成UPSERT记录并通过to_fivetran_row把 Convex 文档转换成 Fivetran 行。从page.pagination.next_cursor取出不透明游标随CHECKPOINT一起交给 Fivetran 持久化——a page and the cursor that follows it must be persisted atomically页与后续游标必须原子持久化。当page.status为DataSyncStatus::UpToDate时视为已追平最新数据结束本次同步等待 Fivetran 调度下一次同步。关键点游标与页面数据一起原子提交是断点续传的保证。即使同步被中断Fivetran 侧也已持久化了上一页的游标下次同步直接从此恢复。此外data_sync_cursor_from_deltas接口用于把旧版document_deltas游标迁移成 data sync 游标让迁移前创建的连接无缝续传无需全量重同步见 crates/fivetran_source/src/sync.rs 中resolve_cursor的分支处理与 crates/fivetran_source/CHANGELOG.md 3.0.0 的说明。6. Schema 信息与类型映射Fivetran 会按照标准的数据库更新策略尽量把你 Convex 部署中的数据库与列复制到目标库。连接器通过get_table_column_names接口获取每个组件下每张表的列名生成 Fivetran schema见 crates/fivetran_source/src/schema.rs 的generate_fivetran_schema。6.1 类型转换与映射表连接器提取数据时会把 Convex 数据类型匹配为 Fivetran 支持的类型crates/fivetran_source/docs/overview.mdConvex TypeFivetran TypeFivetran SupportedIdSTRINGTrueNullNULLTrueInt64LONGTrueFloat64DOUBLETrueBooleanBOOLEANTrueStringSTRINGTrueBytesBINARYTrueArrayJSONTrueObjectJSONTrue该映射在源码中有直接对应实现crates/fivetran_source/src/convert.rs 的to_fivetran_value通过match把ConvexValue各变体转换为 Fivetran 的ValueTypeConvexValue::Null→FivetranValue::NullConvexValue::Int64→FivetranValue::LongConvexValue::Float64→FivetranValue::DoubleConvexValue::Boolean→FivetranValue::BoolConvexValue::String→FivetranValue::StringConvexValue::Bytes→FivetranValue::BinaryConvexValue::Array/Object→FivetranValue::Json序列化为 ConvexCleanJSON 格式字符串需要特别说明的两点_creationTime系统字段在 Convex 内部以 Float64 存储但连接器会特殊处理转换成UTC_DATETIMEcrates/fivetran_source/src/convert.rs 的to_fivetran_field分支。Object/Array 内的嵌套类型使用 Convex 的导出 JSON 格式序列化。此外除_id、_creationTime外的其他_开头系统字段会被跳过源码to_fivetran_field的过滤逻辑。6.2 嵌套数据如何处理Convex 文档以 JSON 表示。当第一层字段是简单类型时连接器会映射为独立列当是 Array 或 Object 这类复杂嵌套类型时会映射为 JSON 类型且不做解包——不会把嵌套 JSON 自动拆成目标库的独立表而是原样保留方便你使用 JSON 处理函数crates/fivetran_source/docs/overview.md 的 Nested data 一节。例如下面的 Convex 文档{street : Main St. city : New York country : US phone : (555) 123-5555 zip code : 12345 people : [John, Jane, Adam] car : {make : Honda, year : 2014, type : AWD} }被加载到目标库时会转换成如下表结构people数组与car对象原样保留为 JSON_idstreetcitycountryphonezip codepeoplecar1Main St.New YorkUS(555) 123-555512345[John, Jane, Adam]{make : Honda, year : 2014, type : AWD}6.3 Fivetran 生成的系统列Fivetran 会向目标库的每张表追加以下列帮助你在目的地了解数据状态与同步进度crates/fivetran_source/docs/overview.md_fivetran_syncedUTC TIMESTAMPFivetran 上次成功同步该行的时间加到每张表。_fivetran_deletedBOOLEAN该行是否在源端被删除。7. 排除源数据组件/表/字段级选择如果不想同步全部数据可以在 Fivetran dashboard 的 Convex 连接详情页取消勾选需要省略的对象crates/fivetran_source/docs/overview.md 的 Excluding source data 一节。底层实现见 crates/fivetran_source/src/conversions/selection.rsFivetran 的 selection 结构会被转换为 Convex 流式导出模块的Selection类型支持组件component、表table、列column三级选择并支持新出现对象默认包含/排除的默认策略。选择规则有两点需要特别留意包含/排除组件或表是追溯生效的新纳入的表会在下次同步时从 Convex 部署回填排除的表会从目标库删除无需历史重同步。修改列的包含与否只影响之后同步的行已存在于目标库的行不会被重写如需对旧数据应用列变更需手动触发历史重同步见 crates/fivetran_source/docs/overview.md 的 important 提示。8. 本地构建、运行与测试连接器8.1 安装与构建fivetran_source是 convex-backend 仓库中的一个 cratecrates/fivetran_source/Cargo.toml。安装 Rust 工具链后即可构建git clone https://github.com/get-convex/convex-backend.git cd convex-backend cargo build --release -p fivetran_source构建产物位于convex-backend/target/release/fivetran_source。8.2 启动连接器直接运行二进制即可启动 gRPC 服务crates/fivetran_source/README.md$ ./fivetran_source Starting the connector on [::]:50051默认监听 50051 端口可用--port参数修改$ ./fivetran_source --port 1337 Starting the connector on [::]:1337该行为在 crates/fivetran_source/src/main.rs 中实现通过clap解析--port默认值 50051绑定到0.0.0.0并以SourceConnectorServer暴露 gRPC 服务支持 gzip 压缩。README 中的本地测试方案使用just run-local-backend启动本地 Convex 后端配合 Fivetran 官方 source connector tester 驱动连接器完成 setup tests、schema 拉取与数据流式写入本地 DuckDB warehouse。9. 常见注意事项连接器版本与后端兼容3.0.0 起使用/api/v1/data/sync替代旧版list_snapshot与document_deltas要求 Convex 后端提供该接口过旧的自托管部署需先升级见 crates/fivetran_source/CHANGELOG.md。旧连接升级3.0.0 之前的连接会自动迁移并保留已有数据无需历史重同步而 2.0.0 引入 components 支持时是破坏性变更旧连接需执行一次全量历史重同步Fivetran 连接页 Setup 标签下 Resync all historical data且组件命名空间会从{{prefix}}_{{table}}变为{{prefix}}_app_{{table}}/{{prefix}}_{{component path}}_{{table}}见 crates/fivetran_source/src/connector.rs 中deserialize_state_json的版本校验逻辑。组件命名冲突根组件root component的表会落入名为app的默认 Fivetran schema如果你的 Convex 部署恰好存在名为app的组件连接器会在 schema 请求时报错提示重命名crates/fivetran_source/src/connector.rs 的_schema校验。错误呈现方式同步过程中的错误会以 FivetranTask操作的形式上报在 dashboard 上向用户展示具体错误消息而非笼统的同步失败crates/fivetran_source/src/connector.rs 的task_response。赞分享数据库后端【免费下载链接】convex-backendThe open-source reactive database for app developers项目地址https://gitcode.com/gh_mirrors/co/convex-backend点击查看免费下载相关推荐Convex Fivetran Destination Connector 指南构建 gRPC 数据复制管道与 schema 映射实战Convex Fivetran Destination Connector 指南构建 gRPC 数据复制管道与 schema 映射实战 Fivetran De数据库后端Convex Fivetran Source Connector 实战指南基于数据同步 API 将 Convex 数据复制到任意数据库Convex Fivetran Source Connector 实战指南基于数据同步 API 将 Convex 数据复制到任意数据库 导读 convex b数据库后端Convex 后端 Fivetran Source Connector 版本演进解析从增量快照到数据同步 APIConvex 后端 Fivetran Source Connector 版本演进解析从增量快照到数据同步 API 导读 本文以 crates/fivetran数据库后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
从网盘涨价到自建NAS:旧电脑打造家庭数据中心全攻略 1. 从网盘会员涨价说起,我为什么决定自建家庭数据中心去年某网盘会员又涨了一轮,我算了一笔账:一家人三部手机、两台台式机、一台笔记本,照片和视频每年新增差不多 300GB,加上工作文档和素材,按现在的容量套… · 2026/9/23 5:30:09
所有AI都在抢钱,梁文锋却说DeepSeek是“消费”:用TaoToken统一Key看API账单 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 5:30:09
3步搞定大学生活费记账系统最佳实践 3步搞定大学生活费记账系统最佳实践 配置环境就卡半天,是不是你的日常?别急着骂编译器,大概率是依赖冲突。搞了10年开发,见过太多人为了装个Python包折腾两小时,最后发现是pip源没配好。今天不整虚的,直接上 大学生活费 记账系统的… · 2026/9/23 5:30:02
Altium Designer设计数据流与最小闭环实践指南 简介:本资源是Altium Designer(AD)官方中文教程的系统性解读文档,专为电子设计初学者打造,聚焦原理图绘制、元件库管理与Altium Content Vault组件调用等核心入门技能。内容覆盖PCB项目创建、原理图添加、文档选项设置… · 2026/9/23 22:12:31
Python实现设备剩余使用寿命RUL预测与故障诊断 简介:本资源是一套面向工业智能运维领域的Python剩余使用寿命(RUL)预测与故障诊断代码框架,适用于具备基础Python和机器学习能力的工程师、研究生及科研人员,解决设备退化建模、早期故障识别与预测性维护中的核心算法实… · 2026/9/23 22:12:12
2024大厂前端面试攻略:从基础原理到项目实战的完整备战指南 咱们开篇先把话说透:2024年还在传“前端已死”的人,要么没在认真找前端工作,要么看的招聘信息不超过十条。这一行的真相是——初级前端的确在卷学历、卷实习,但真正能解决业务问题、有系统设计能力、能扛起一个产品线渲染与体验责… · 2026/9/23 22:11:53
SEO外链管理系统源码部署与一键优化实战指南 简介:一款面向SEO从业者与网站管理员的工具型源码,借助自动化方式集中管理外部链接,解决人工维护外链耗时、易失效的问题,适合想提升站点排名与权重的中初级用户。压缩包共18个文件,主要包含3个PHP脚本用于网站配置和核… · 2026/9/23 22:11:46
C++课设实战:EasyX仿超级马里奥源码拆解与二次开发指南 简介:这是一份基于C与EasyX图形库还原经典超级马里奥的完整游戏源码,面向计算机、通信、自动化等专业的学生与开发者,可直接用作毕业设计、课程设计或期末大作业。项目已实现1-1、1-2、1-3三个完整关卡,涵盖移动、跳跃、加速发射火… · 2026/9/23 22:11:46
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29