简介这份文档面向使用 SAP Data Services 进行数据集成的开发与运维人员聚焦于如何将 MySQL 数据库接入 Data Services 平台解决异构数据源连接与元数据导入的实际问题。资源包共 1 个 docx 文件大小约 1.43MB内容以图文步骤形式组织便于对照操作。文档围绕创建 data store、配置 MySQL 类型连接、通过 ODBC Admin 建立并测试 ODBC 连接、导入表元数据以及查看表设计与数据等环节展开同时提醒读者关注 MySQL 服务状态、数据库与表结构准备、Data Services 版本兼容性以及账号密码安全与数据备份恢复等注意事项。目前已有 1621 人学习下载适合需要快速打通 Data Services 与 MySQL 链路、完成数据抽取转换加载的初中级工程师参考也可作为日常排错与配置核对的辅助材料。1. 连接前的环境盘点为什么你的 Data Services 连不上 MySQL装 SAP Data Services 的人十个里有八个最后卡在数据源连接上。软件本身装好了Job Server 也跑起来了Designer 能打开可一到 Data Store 里选 MySQL 就报错——要么 ODBC 驱动列表里压根没有 MySQL 选项要么 Test Connection 转两圈弹一个“Data source name not found”。这不是 Data Services 的问题是 Windows 侧的 ODBC 数据源没配对。SAP Data Services 连接 MySQL 走的是 ODBC 通道不是原生驱动所以真正要配的是两样东西一个位数匹配的 MySQL ODBC 驱动一个在 ODBC 管理器里建好的系统 DSN。这两样缺一个Data Store 就建不起来。这篇记录适合正在搭数据集成环境、需要把 MySQL 作为源或目标库接进 Data Services 的开发者尤其是第一次配 ODBC 就翻车的人。下面按我实际装机的顺序从版本确认到建 Data Store、导元数据、验证数据一步步走完。2. 装驱动与建 DSNMySQL ODBC 的位数匹配和参数填写2.1 确认 Data Services 的位数别装错驱动Data Services 是 32 位还是 64 位直接决定你该装哪个版本的 MySQL ODBC 驱动。很多人机器上装了 64 位 MySQL Connector/ODBC结果 Data Services Designer 是 32 位的ODBC 管理器里死活看不到那个 DSN。判断方法很简单打开 Designer看安装目录或者直接看任务管理器里 Designer 进程有没有带“32 位”标记。我一般会先确认这一点再决定去下 32 位还是 64 位的驱动。常见做法是Data Services 4.x 的 Designer 多数是 32 位应用所以需要装 32 位的 MySQL ODBC 驱动。如果你装的是 64 位驱动在 32 位的 ODBC 管理器C:\Windows\SysWOW64\odbcad32.exe里是看不到的。反过来如果 Data Services 是 64 位就要用C:\Windows\System32\odbcad32.exe打开的管理器。提示不要凭感觉猜位数直接看 Designer 的安装路径或进程信息确认后再下载对应驱动。2.2 安装 MySQL ODBC 驱动并创建系统 DSN驱动下载后直接双击安装一路 Next 即可。装完后打开对应位数的 ODBC 管理器。这里有个细节Data Services 连接 MySQL 时Data Store 里点“ODBC Admin”按钮弹出的就是系统 ODBC 管理器。所以 DSN 必须建在“系统 DSN”标签页下不能建在“用户 DSN”里否则 Job Server 以服务账户运行时读不到。操作步骤打开 ODBC 数据源管理器位数要和 Data Services 一致。切换到“系统 DSN”标签页点“添加”。在驱动列表里选 MySQL ODBC 驱动名称通常是 MySQL ODBC 8.0 Unicode Driver 或 ANSI Driver。填写连接参数# MySQL ODBC 连接参数示例 Data Source Name: DS_MYSQL_TEST # DSN 名称后面 Data Store 里要对应 TCP/IP Server: 127.0.0.1 # MySQL 服务器地址 Port: 3306 # 默认端口 User: ds_user # 数据库账号 Password: ******** # 密码 Database: test_db # 默认库可不填后续在 Data Store 里指定点“Test”测试连接。如果弹出“Connection Successful”说明 DSN 通了。点 OK 保存。参数说明Data Source Name 是后续在 Data Services 里要引用的名字建议用有意义的命名比如DS_MYSQL_PROD。TCP/IP Server 填 IP 或主机名如果 MySQL 和 Data Services 不在同一台机器这里要填实际地址。User 和 Password 是 MySQL 侧提前建好的账号权限至少要有所需库的 SELECT 权限如果要做写入还要 INSERT、UPDATE、DELETE。Database 可以不填Data Store 里可以再指定。注意如果 Test 报“Cant connect to MySQL server”先检查 MySQL 服务是否启动、防火墙是否放行 3306、账号是否允许从 Data Services 所在主机连接。2.3 在 Data Services 里创建 MySQL Data Store驱动和 DSN 都就绪后回到 Data Services Designer。右下角切到 Data Store 标签页空白处右键新建或者走菜单。在弹出的 Data Store 定义窗口里关键参数如下Name给 Data Store 起个名字比如DS_MYSQL_TEST。Data store type选 Database。Database type选 MySQL。Database server name这里填 ODBC 里配好的 DSN 名称也就是DS_MYSQL_TEST。User name / PasswordMySQL 账号密码可以和 ODBC 里填的一致也可以不同但要有权限。Database name指定要连接的库名比如test_db。填完后点“ODBC Admin”按钮会再次打开 ODBC 管理器确认 DSN 存在且测试通过。然后回到 Data Store 窗口点 OK。如果一切正常Data Store 会创建成功左侧树里能看到这个节点。常见坑Database type 如果选错成“ODBC”而不是“MySQL”后续导入表元数据时可能识别不出 MySQL 的数据类型。所以这里务必选 MySQL。3. 导入元数据与查看表结构从 Data Store 到 dimcustomer 表3.1 导入 MySQL 表元数据Data Store 建好后双击它展开下面会有 Tables 节点。双击 Tables右侧会列出 MySQL 库中已有的表。如果表很多可以用筛选。选中需要导入的表右键选择 Import。Data Services 会读取这些表的元数据列名、数据类型、长度等并保存到本地仓库。导入完成后在 Data Store 的 Tables 下面就能看到已导入的表。比如示例里的dimcustomer表双击它右侧会显示表的设计信息列名、数据类型、是否可为空、主键等。这些元数据是后续做 ETL 映射的基础。提示如果 Tables 下列表为空先确认 MySQL 账号是否有该库的权限以及 Data Store 里 Database name 是否填对。3.2 查看表数据与验证连接右键点击dimcustomer表选择 View DataData Services 会执行一条SELECT * FROM dimcustomer并把结果展示出来。这一步是验证连接是否真正可用的最直接方式。如果能看到数据说明 ODBC 通道、Data Store 配置、账号权限都没问题。我一般会在这时候顺手检查一下字符集。如果 MySQL 是 utf8mb4而 ODBC 驱动用了 ANSI 版本中文可能显示乱码。解决办法是换 Unicode 驱动或者在 DSN 里配置字符集参数。常见做法是在 ODBC 连接的“Connection”标签页里把 Character Set 设为utf8mb4。-- 在 MySQL 侧确认字符集 SHOW VARIABLES LIKE character_set_database; SHOW VARIABLES LIKE collation_database;如果字符集不是 utf8mb4而 Data Services 里看到的中文是问号那就要调整 DSN 的字符集设置或者改用 Unicode 驱动重新建 DSN。3.3 元数据导入后的检查清单导入完成后建议做几项检查表数量是否和 MySQL 里一致。关键表的列类型是否映射正确比如 MySQL 的datetime对应 Data Services 的datetimevarchar长度是否一致。主键和外键关系是否被识别Data Services 不会自动导入外键需要手动定义。如果有视图是否也需要导入。这些检查能避免后续 Job 跑起来才发现类型不匹配或字段缺失。4. 避坑与排查ODBC 连接 MySQL 的五个高频翻车点4.1 现象ODBC 管理器里看不到 MySQL 驱动原因驱动位数和 ODBC 管理器位数不匹配。32 位管理器在SysWOW64下64 位在System32下。很多人打开的是 64 位管理器但装的是 32 位驱动或者反过来。解决确认 Data Services 位数打开对应位数的 ODBC 管理器。如果不确定两个都打开看看哪个里面有 MySQL 驱动就用哪个。4.2 现象Test Connection 成功但 Data Store 点 OK 报错原因Data Store 里的 Database server name 填的不是 DSN 名称而是主机名或 IP。Data Services 通过 ODBC 连接时这里要填 DSN 名。解决把 Database server name 改成 ODBC 里建的 DSN 名称比如DS_MYSQL_TEST。4.3 现象导入表元数据时提示“No tables found”原因Data Store 里 Database name 没填或者填的库名不对或者 MySQL 账号没有该库的权限。解决在 Data Store 配置里明确填写 Database name并确认账号有SELECT权限。可以在 MySQL 里执行SHOW GRANTS FOR ds_user%;检查。4.4 现象View Data 中文乱码原因ODBC 驱动用了 ANSI 版本或者 DSN 里字符集没设对。解决换 Unicode 驱动或者在 DSN 配置的 Connection 标签页里设置 Character Set 为utf8mb4。如果还是乱码检查 MySQL 服务端字符集。4.5 现象Job Server 执行 Job 时报“Data source not found”原因DSN 建在了用户 DSN 下而 Job Server 以服务账户运行读不到用户 DSN。解决把 DSN 建在系统 DSN 下。如果已经建在用户 DSN删掉重建到系统 DSN。5. 装完怎么验证跑通从 View Data 到一个小 Job5.1 用 View Data 做第一层验证建好 Data Store、导入元数据后右键任意一张表选 View Data能看到数据就说明连接链路通了。这一步验证的是ODBC 驱动正常、DSN 正常、Data Store 配置正常、账号权限正常。如果这一步失败后面的 Job 不用试先回头查 ODBC。5.2 用 Query Transform 做第二层验证新建一个 Data Flow拖入dimcustomer作为源加一个 Query Transform再拖一个 Template Table 作为目标。在 Query 里做一次简单映射比如只选几列然后保存并执行。如果 Job 能跑完且目标表有数据说明 Data Services 不仅能读 MySQL还能写。这一步验证的是 Job Server 的执行链路。-- 在 MySQL 侧确认目标表数据 SELECT COUNT(*) FROM target_table;5.3 验证清单与常见收尾检查检查项验证方法通过标准ODBC 连接ODBC 管理器 TestConnection SuccessfulData StoreDesigner 里点 OK无报错节点出现元数据导入Tables 下列表表数量和 MySQL 一致数据读取View Data能看到数据无乱码数据写入跑一个简单 JobJob 成功目标表有数据字符集检查中文无乱码我一般会在第一次配好后把整个流程走一遍然后记下 DSN 名称、驱动版本、Data Store 配置下次换环境直接照抄。从那以后每次新装 Data Services 连 MySQL我都强制先确认位数、再建系统 DSN、最后才开 Designer这三步顺序不乱基本不会翻车。希望帮到你。本文还有配套的精品资源点击获取