解析DataWorks数据集成中测试连通性失败问题

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大家好,这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多,本文按照多个因素逐步排查,最终解决问题,希望大家以后再遇到此类问题,请参考此文,相信能够顺利解决您的问题。

一、问题现象

此案例中,DataWorks项目位于华东2,RDS Mysql数据源位于华东1(VPC网络),使用DataWorks进行数据同步之前,首先需要建立数据源,但在建立数据源RDS Mysql的配置页面,“测试连通性”失败,即数据源并没有连通。

1

二、问题处理过程

(1)首先,应该判断该数据源是否支持“测试连通性”
遇到测试连通性问题,首先应该判断该数据源是否支持“测试连通性”,请大家参考《各数据源测试连通性支持情况》。请注意,通过经典网络或VPC网络的跨区域访问,是不保证连通性的,但RDS产品除外,也就是说本案例中的数据源是支持测试连通性的。(本案例中项目和数据源的基本情况,已经在开篇位置介绍了)。

(2)数据源是否配置了完整的白名单
接下来,我们看下是否在Mysql数据库配置了白名单。关于白名单,请参考《数据集成添加白名单》。该文档详细介绍了每个region对应的白名单内容(请注意添加您的项目所在region的白名单,而非您的数据源所在region的白名单)。经过核实,这个RDS Mysql数据源的白名单如下:
2

这正是项目所在region华东2的白名单,所以白名单错误或不完整的原因也排除了。而且开篇第一张图报错中出现的100.104.205.10这个ip也在上述白名单中。

(3)数据源配置页面的信息是否正确
接下来需要核实该数据源配置页面的信息是否正确了。
经过核实,RDS实例ID、RDS实例购买者ID、数据库名、用户名、密码,均没有任何问题。而且,用此处填写的数据库名、用户名、密码可以成功登陆Mysql数据库。如下图:
3
说明基本信息填写正确。

(4)通过公网连接,“测试连通性”是否能成功
上述数据源配置页面,在“数据源类型”选择的是“阿里云数据库(RDS)”,即通过内网连接。接下来尝试下在“数据源类型”选择“有公网IP”,即尝试下通过公网连接,“测试连通性”是否能成功,但测试结果依然失败,并且报错依然是“Access denied”,并且121.43.110.160这个ip也在配置的白名单中。如下图:
4

(5)核查数据库账号的权限
既然上述配置、白名单等都没问题,那接下来看下该数据库账号(这里假设是zhangsan)的权限问题。
DataWorks的数据集成功能,底层是通过开源工具DataX来进行同步的,DataX是通过select操作去数据源中读取数据的,下图是一个同步任务的日志,从日志中可以看到,同步任务是通过执行select语句去读取数据的,如下图所示:
5
也就是说,用户必须能够登录数据库,并有select权限,才能进行数据同步。那我们首先看下用户’zhangsan’的权限和属性。
登录Mysql数据库后,执行:

//查询账号zhangsan的权限

select user, host from mysql.user where user = 'zhangsan';
//查询mysql的user表中,用户为'zhangsan'的账号和允许登录的ip

select * from information_schema.processlist where user = 'zhangsan';
//查看user等于'zhangsan'的连接情况。

执行结果如下:

6
经过上图分析,该用户'zhangsan'没有show grants for zhangsan; 的权限,同样也没有权限查询mysql数据库user表中,用户为'zhangsan'的账号和允许登录的ip。而且,当前用户'zhangsan'的连接情况是正常的。
通过有root权限的相关人员查询得到,该用户'zhangsan'绑定了登录ip,即只有在指定ip下才能用此账号登录,即:

Host: 116.228.89.206
User: zhangsan

也就是说,用户zhangsan是无法通过用于同步的阿里云服务器登录其数据库的,测试连通性当然就失败了!由此,我们终于找到了测试连通性失败的原因!
接下来,用root账户新建用户lisi,然后给lisi赋select权限,命令如下:

grant select on 数据库.* to lisi@'%' identified by 'user_password';
// 给lisi赋select权限,并允许在任意ip登录

flush privileges;
//刷新MySQL的系统权限相关表

由此,再进行RDS Mysql数据源的测试连通性就成功了。

三、结论&建议
当使用DataWorks数据集成功能,遇到数据源测试连通性失败的时候,可以依照上述排查思路,一步步排查,并请注意数据源中配置账号的权限问题。

本文转自偕作《解析DataWorks数据集成中测试连通性失败问题》

欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号:11782920)进行咨询。

66

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
20天前
|
Java 测试技术 开发者
在软件开发中,测试至关重要,尤以单元测试和集成测试为然
在软件开发中,测试至关重要,尤以单元测试和集成测试为然。单元测试聚焦于Java中的类或方法等最小单元,确保其独立功能正确无误,及早发现问题。集成测试则着眼于模块间的交互,验证整体协作效能。为实现高效测试,需编写可测性强的代码,并选用JUnit等合适框架。同时,合理规划测试场景与利用Spring等工具也必不可少。遵循最佳实践,可提升测试质量,保障Java应用稳健前行。
30 1
|
20天前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据集成并发数不支持批量修改,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2天前
|
机器学习/深度学习 DataWorks 数据挖掘
基于阿里云Hologres和DataWorks数据集成的方案
基于阿里云Hologres和DataWorks数据集成的方案
16 7
|
11天前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
29 8
|
20天前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之数据集成任务日志中显示wait,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
8天前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
16 0
|
8天前
|
测试技术 持续交付 开发者
Xamarin 高效移动应用测试最佳实践大揭秘,从框架选择到持续集成,让你的应用质量无敌!
【8月更文挑战第31天】竞争激烈的移动应用市场,Xamarin 作为一款优秀的跨平台开发工具,提供了包括单元测试、集成测试及 UI 测试在内的全面测试方案。借助 Xamarin.UITest 框架,开发者能便捷地用 C# 编写测试案例,如登录功能测试;通过 Xamarin 模拟框架,则可在无需真实设备的情况下模拟各种环境测试应用表现;Xamarin.TestCloud 则支持在真实设备上执行自动化测试,确保应用兼容性。结合持续集成与部署策略,进一步提升测试效率与应用质量。掌握 Xamarin 的测试最佳实践,对确保应用稳定性和优化用户体验至关重要。
18 0
|
8天前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
18 0
|
8天前
|
监控 jenkins 测试技术
自动化测试中的“守护神”: 持续集成与代码质量监控
【8月更文挑战第31天】在软件开发的海洋里,自动化测试犹如一座灯塔,指引着项目向着高质量和高效率的方向前进。本文将深入探讨如何通过持续集成(CI)和代码质量监控相结合的方式,构建起一道坚固的防线,保障软件项目在快速迭代中不失方向。我们将一起探索这一过程中的关键实践,以及它们是如何相互作用,共同提升软件项目的可靠性和稳定性。
|
17天前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果

热门文章

最新文章

下一篇
DDNS