Mage 集成 Commercetools 数据源:配置认证与流式同步实战指南
数据工程数据编排ETL任务调度批处理流处理数据集成后端【免费下载链接】mage-ai Build, run, and manage data pipelines for integrating and transforming data.项目地址https://gitcode.com/gh_mirrors/ma/mage-ai点击查看免费下载Commercetools 是电商领域常用的 Headless Commerce 平台本指南聚焦 Mage 开源仓库中mage_integrations子项目提供的 Commercetools 数据源Source集成完整讲解其五项必填配置、基于 OAuth 2.0 Client Credentials 的认证流程、六大可同步数据流Stream及其 JSON Schema 结构并结合仓库源码说明底层实现原理。读完本文你将能够在 Mage 中独立完成 Commercetools 数据源的配置、连接测试与数据管道搭建。数据源定位与配置清单在 Mage 项目中Commercetools 数据源位于 mage_integrations/mage_integrations/sources/commercetools其官方说明文档即 README.md仓库内另有面向使用者的镜像文档 docs/data-integrations/sources/commercetools.mdx。配置该数据源时必须提供以下五个凭据参数Key说明示例值client_idAPI 客户端的client_id用于获取访问令牌access tokenabcdefgclient_secretAPI 客户端的client_secret用于获取访问令牌abcdefghijklmnopqrstuvwxyzhostCommercetools URL 中的主机段例如aws、gcpgcpproject_key与你的项目关联的项目键project keyprojectkeyregionCommercetools URL 中的区域段例如us-central1、us-east-2us-central1仓库为配置提供了可直接引用的 JSON 模板 templates/config.json结构如下{ region: region, host: host, project_key: project_key, client_id: client_id, client_secret: client_secret }从模板可以看出五个键均为字符串类型且模板中的占位值与 README 中的示例一一对应实际使用时只需将占位符替换为你在 Commercetools 控制台获得的真实值。如何获取client_id与client_secret按照 Commercetools 官方的授权文档docs.commercetools.com 的 Authorization 章节执行以下两步即可创建 API 客户端Create an API client登录 Commercetools Merchant Center在项目设置中进入开发者工具创建一个新的 API Client创建时可按需选择 scopes权限范围。从 API 客户端凭据页面获取三项信息创建完成后凭据页面会展示client_id、client_secret以及project_key将这三项分别填入上文配置的对应字段。其中client_secret属于高敏感凭据创建后通常仅展示一次建议直接存入项目的环境变量或密钥管理Secrets机制中避免明文写入代码仓库。底层认证与请求实现OAuth 2.0 Client Credentials配置项之所以是这五键组合可以在 client.py 的源码中得到完整印证。该文件定义Client类继承自mage_integrations.sources.http.client.Client其职责是完成令牌获取、URL 拼接与 HTTP 请求。令牌获取get_access_token实现了标准的 OAuth 2.0 Client Credentials 流程通过requests.post向认证端点发送请求端点 URL 由 region 与 host 拼接而成https://auth.{region}.{host}.commercetools.com/oauth/token?grant_typeclient_credentialsscopemanage_project:{project_key}请求时以client_id与client_secret作为 HTTP Basic Auth 凭据auth(client_id, client_secret)响应 JSON 中携带access_token随后被封装为Bearer {access_token}形式的令牌保存在实例中供后续所有 API 请求的Authorization请求头使用def get_headers(self): return { Authorization: self.token, Content-Type: application/json }业务 API 端点base_url同样由配置动态拼接https://api.{region}.{host}.commercetools.com/{project_key}由此可以推断host与region两个配置项的本质作用它们共同决定认证域名与 API 域名的地理分布不同云厂商aws/gcp与不同区域如us-central1、us-east-2会指向不同的 Commercetools 基础设施这也是这两个字段必须与你在 Commercetools 项目中实际分配到的部署位置严格一致的原因。project_key则作为路径的一部分用于隔离不同项目的数据。request()方法为上层流Stream提供统一的请求入口支持get等方法可传入path自动拼接base_url或完整url最终调用父类的make_request完成实际网络请求。数据同步的入口Source 与六大 StreamCommercetools 数据源的入口定义在init.py其中Commercetools类继承自mage_integrations.sources.base.Source构造时即创建Client实例这意味着初始化数据源时就会触发令牌获取load_data(stream, bookmarks, query)按tap_stream_id从STREAMS映射表中查找对应的 Stream 类并委托其load_data(bookmarks)拉取数据get_table_key_properties与get_valid_replication_keys均返回该 Stream 的KEY_PROPERTIES即主键字段文件末尾的if __name__ __main__: main(Commercetools)提供了标准的命令行入口可直接以脚本方式运行该数据源。Stream 的注册表定义在 schemas.py 中共六个数据流Stream ID类名API 路径主键KEY_PROPERTIEScustomersCustomersStream/customersiddiscount_codesDiscountCodesStream/discount-codesidinventoryInventoryStream/inventoryidordersOrdersStream/ordersidpaymentsPaymentsStream/paymentsidproductsProductsStream/productsid以 orders.py 和 products.py 为例每个 Stream 类只需声明KEY_PROPERTIES与URL_PATH两个类属性即可完成定义其余行为继承自 streams/base.py 中的BaseStream。分页拉取机制BaseStream.load_data是数据抽取的核心采用基于 offset 的游标分页实现要点如下从offset 0开始每次请求携带params {offset: offset}调用self.client.request(pathself.URL_PATH, params...)获取响应从响应 JSON 的results字段取出本页数据并yield以生成器方式流式产出避免一次性加载全量数据占用内存将offset累加本页返回的count即本次实际返回的记录数继续循环直至results为空拉取完成后通过self.logger.info输出完成日志。这一实现与 Commercetools API 的查询响应结构resultscount严格对应count字段同时承担“本页大小”与“下一页游标步长”的双重职责。bookmarks参数为增量同步incremental sync预留了书签接口但当前实现中未对 bookmarks 做额外过滤逻辑实际同步以全量分页为主。数据 Schema 与共享结构数据源的输出结构由 schemas 目录下的 JSON Schemadraft-07定义包含六个顶层 schema 文件customers.json、discount_codes.json、inventory.json、orders.json、payments.json、products.json以及shared/子目录中的 19 个共享子结构。顶层 schema 直接对应各 API 资源的字段。以 customers.json 为例包含id、customerNumber、key、version、createdAt、lastModifiedAt、email、firstName、lastName、middleName、title、salutation等字段其中createdAt、lastModifiedAt声明为format: date-time的时间戳字段可用于后续的时间分区或增量判断createdBy、lastModifiedBy等审计字段则引用共享结构。shared/目录中的共享结构覆盖了电商场景下的典型嵌套对象例如money.json金额结构包含type、currencyCode、centAmount以分为单位的金额与fractionDigits货币小数位address.json地址结构price.json/price_scoped.json/discounted_price_per_quantity.json商品价格相关结构product_data.json/product_variant.json/dimension.json商品数据与变体结构taxrate.json/taxed_price.json/taxed_item_price.json税务相关结构custom.json/field_type.json自定义字段与字段类型localized_string.json/state.json/reference.json/key_reference.json本地化字符串、状态机与引用类型shipping_details.json/created_by.json/last_modified_by.json发货详情与审计信息。这些共享结构通过$ref被各顶层 schema 引用保证了跨流之间同类字段的类型定义一致。将 Commercetools 接入 Mage 数据管道在 Mage 中实际使用该数据源时通常遵循以下流程准备凭据按上文“获取 client_id 与 client_secret”一节创建 API Client记录client_id、client_secret与project_key同时确认项目部署的host如aws、gcp与region如us-central1、us-east-2。在数据集成管道中配置 Source新建 Data Integration 类型的管道将 Source 类型选为 Commercetools依次填写五键配置。执行 Discovery触发 schema 发现Mage 会读取上文描述的 JSON Schema 生成可选的输出目录catalog你可以选择要同步的一个或多个 Stream如仅同步customers与orders。连接测试Mage 会使用配置尝试初始化Client并验证令牌获取链路是否可用。需要说明的是Commercetools类并未覆写Source基类中的test_connection方法而基类的默认实现会抛出“不支持连接测试”的异常因此该数据源目前以真实拉取数据时的成败作为连通性验证手段。运行管道管道运行时load_data会按 Stream 依次请求/customers、/orders等端点以 offset 分页逐批拉取数据并写入目标端。配置过程中如果遇到认证失败优先检查client_id/client_secret是否与 API Client 凭据页面一致、scope是否包含manage_project:{project_key}所需的权限以及host/region是否与项目实际部署位置匹配——后两项拼写错误会直接导致认证端点或 API 端点 DNS 解析失败这一点可以从 client.py 中 URL 的拼接逻辑直观定位。小结本文以仓库中的 Commercetools README 为骨架结合 client.py、schemas.py、streams/base.py 与 schemas 目录中的 JSON Schema完整还原了 Commercetools 数据源从配置、认证到分页同步的整条实现链路。对于需要将 Commercetools 的客户、订单、商品、库存、支付与折扣码数据汇入数据仓库的团队按上述步骤配置即可快速跑通数据集成管道。赞分享数据工程数据编排ETL任务调度批处理流处理数据集成后端【免费下载链接】mage-ai Build, run, and manage data pipelines for integrating and transforming data.项目地址https://gitcode.com/gh_mirrors/ma/mage-ai点击查看免费下载相关推荐从混用尺寸到统一 A4PDF补丁丁页面大小调整的 3 个实操任务从混用尺寸到统一 A4PDF补丁丁页面大小调整的 3 个实操任务 扫描文档一半 A4 一半 A5合并后的文件页面尺寸各不相等打印排队时最头疼。PDF补丁丁数据工程数据编排ETL任务调度批处理流处理数据集成后端前端Mage 数据集成中接入 Outreach 数据源OAuth 认证配置、参数详解与增量同步原理Mage 数据集成中接入 Outreach 数据源OAuth 认证配置、参数详解与增量同步原理 Outreach 是销售参与Sales Engagement数据工程数据编排ETL任务调度批处理流处理数据集成后端前端Mage AI 数据集成深入解析 Mode 分析平台数据源Mode Source的配置、认证与同步原理Mage AI 数据集成深入解析 Mode 分析平台数据源Mode Source的配置、认证与同步原理 导读 本文围绕 Mage AI 开源项目中内置的数据工程数据编排ETL任务调度批处理流处理数据集成后端前端上一篇Teleport Machine ID 主机证书支持RFD 83实践指南用 tbot 自动化 OpenSSH 主机证书签发下一篇超全PrimeVue零基础入门从安装到实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

IDURAR ERP CRM 中文部署实战指南:MERN 全栈开源 ERP/CRM 的安装、配置与本地运行

IDURAR ERP CRM 中文部署实战指南:MERN 全栈开源 ERP/CRM 的安装、配置与本地运行

后端前端企业应用CRM 【免费下载链接】idurar-erp-crm Free Open Source ERP CRM Software Accounting Invoicing | Node.Js React 项目地址: https://gitcode.com/gh_mirrors/id/idurar-erp-crm 点击查看 免费下载 IDURAR 是一个基于 "Fair-Code"&#…

2026/9/25 5:22:20 阅读更多 →
PaddleSpeech 实战:基于 CSMSC 语料训练与部署 VITS 端到端语音合成模型

PaddleSpeech 实战:基于 CSMSC 语料训练与部署 VITS 端到端语音合成模型

人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword…

2026/9/25 5:21:20 阅读更多 →
Oracle 19c Windows时区补丁TZ41:从检查应用到验证的完整指南

Oracle 19c Windows时区补丁TZ41:从检查应用到验证的完整指南

简介:面向Windows环境下维护Oracle 19c数据库的DBA,这份TZ41补丁包用于修复与时间区域相关的性能、安全及稳定性问题,并更新全球时区与夏令时规则数据,确保跨时区数据处理与报告准确。整个zip压缩包仅352KB,共10个文件…

2026/9/25 5:21:20 阅读更多 →

最新新闻

OFDM频谱感知实战:10节点协作+循环平稳检测+历史谱图可视化

OFDM频谱感知实战:10节点协作+循环平稳检测+历史谱图可视化

简介:本资源是一套面向通信工程专业高年级本科生及无线认知网络研究者的OFDM信号协作频谱感知MATLAB仿真方案,聚焦于解决单节点在阴影与深度衰落场景下检测不可靠的问题,通过融合多节点感知结果提升频谱判断准确性。压缩包共6个文件&#xff…

2026/9/25 9:41:42 阅读更多 →
2026年AI大模型应用盘点:从通用对话到Coding Agent的15家主流工具实测

2026年AI大模型应用盘点:从通用对话到Coding Agent的15家主流工具实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:41:42 阅读更多 →
计算机网络简答题与论述题核心考点梳理:从TCP/IP到子网划分

计算机网络简答题与论述题核心考点梳理:从TCP/IP到子网划分

简介:计算机网络课程的简答题与论述题常考内容,集中整理进一份Word文档,面向高校学生、考研备考生及求职面试者备考使用。文档系统梳理了电路交换、分组交换与报文交换的优缺点,分组传输中传输、传播、排队等延迟的影响因素&#…

2026/9/25 9:41:42 阅读更多 →
从TMN框架到E300实战:传输网管入门核心知识梳理

从TMN框架到E300实战:传输网管入门核心知识梳理

简介:《中兴传输网管入门知识》是一份面向通信行业新手与传输网管初学者的入门教程,系统梳理电信管理网(TMN)核心概念及其在SDH传输网络中的落地方式。内容从TMN的引入背景、三大结构(功能结构、信息结构、物理结构&am…

2026/9/25 9:41:42 阅读更多 →
Atlas 300V 24G部署YOLO全流程:昇腾推理卡环境搭建与优化

Atlas 300V 24G部署YOLO全流程:昇腾推理卡环境搭建与优化

1. Atlas 300V 24G到底是一张什么卡如果你也是被"atlas部署yolo"这个词带进来的,那你大概率跟我一样,手头或公司机房里躺着一张Atlas 300V 24G,想赶紧把YOLO跑起来,结果一查资料各种术语铺过来,头都大了。先…

2026/9/25 9:41:42 阅读更多 →
Linux服务器SSH连接与GPU开发环境实操指南

Linux服务器SSH连接与GPU开发环境实操指南

1. 项目概述:这不是“连服务器”,而是重建你和算力之间的信任链 “手把手教你如何连上实验室的服务器”——这句话在研究生新生群里刷屏的频率,几乎和开学季的快递单号一样高。但真正点开教程的人,十有八九卡在第二步&#xff1a…

2026/9/25 9:40:41 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →