DataWorks添加kafka数据源? User not authorized to operate on the specified resource, or this API doesn't support RAM
您好,当您在DataWorks中添加Kafka数据源时遇到"User not authorized to operate on the specified resource, or this API doesn't support RAM"的错误提示,这可能意味着您当前用户的身份或权限不足,或者该API不支持RAM授权。以下是一些建议的解决步骤:
如果您在DataWorks中添加Kafka数据源时遇到了“User not authorized to operate on the specified resource, or this API doesn't support RAM”错误,那么可能是因为您的账号没有足够的权限操作Kafka数据源,或者您的账号没有开启RAM权限。
解决这个问题的方法是:
在DataWorks中添加Kafka数据源时遇到“User not authorized to operate on the specified resource, or this API doesn't support RAM”错误,可能是由于以下原因:
在DataWorks的左侧导航栏中,选择“数据源管理”。
在数据源管理页面中,单击右上角的“新增数据源”按钮。
在弹出的对话框中,选择数据源类型为“Kafka”,然后填写数据源的名称、地址、端口号等信息。
单击“确定”按钮,完成数据源的添加。
Kafka数据源为您提供读取和写入Kafka的双向通道,本文为您介绍DataWorks的Kafka数据同步的能力支持情况。https://help.aliyun.com/zh/dataworks/user-guide/kafka-data-source?spm=a2c4g.11186623.0.i81
支持的版本
支持阿里云Kafka,以及=0.10.2且<=2.2.x的自建Kafka版本。
说明
对于<0.10.2版本Kafka,由于Kafka不支持检索分区数据offset,并且Kafka数据结构可能不支持时间戳,进而无法支持数据同步。
使用限制
Kafka数据源目前仅支持使用独享数据集成资源组。
单表离线读
同时配置parameter.groupId和parameter.kafkaConfig.group.id时,parameter.groupId优先级高于kafkaConfig配置信息中的group.id。
单表实时写
写入数据不支持去重,即如果任务重置位点或者Failover后再启动,会导致有重复数据写入。
整库实时写
实时数据同步任务仅支持使用独享数据集成资源组。
对于源端同步表有主键的场景,同步时会使用主键值作为kafka记录的key,确保同主键的变更有序写入kafka的同一分区。
对于源端同步表无主键的场景,如果选择了支持无主键表同步选项,则同步时kafka记录的key为空。如果要确保表的变更有序写入kafka,则选择写入的kafka topic必须是单分区。如果选择了自定义同步主键,则同步时使用其他非主键的一个或几个字段的联合,代替主键作为kafka记录的key。
如果在kafka集群发生响应异常的情况下,仍要确保有主键表同主键的变更有序写入kafka的同一分区,则需要在配置kafka数据源时,在扩展参数表单中加入如下配置。
{"max.in.flight.requests.per.connection":1,"buffer.memory": 100554432}。
重要
添加配置后同步性能会大幅下降,需要在性能和严格保序可靠性之间做好权衡。
实时同步写入kafka的消息总体格式、同步任务心跳消息格式及源端更改数据对应的消息格式,详情请参见:附录:消息格式。
在DataWorks中添加Kafka数据源时,如果遇到“User not authorized to operate on the specified resource, or this API doesn't support RAM”的错误提示,可能是因为您的阿里云账号所属的RAM用户没有权限访问Kafka资源。为了解决这个问题,您可以按照以下步骤操作:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kafka:CreateInstance",
"kafka:DeleteInstance",
"kafka:ModifyInstance",
"kafka:DescribeInstances",
"kafka:RebootInstance",
"kafka:UpgradeInstance",
"kafka:CreateTopic",
"kafka:ModifyTopicAttributes",
"kafka:DeleteTopic",
"kafka:DescribeTopics",
"kafka:ListInstanceOperations",
"kafka:ListTopicOperations",
"kafka:GetInstanceAttribute",
"kafka:GetTopicAttributes",
"kafka:SendMessages"
],
"Resource": [
"acs:kafka:{region}:{accountId}:instance/*",
"acs:kafka:{region}:{accountId}:topic/*"
]
}
]
}
请将上述代码中的{region}
和{accountId}
替换为实际的值。此外,请注意该策略中包含了Kafka资源的访问权限,包括CreateInstance
、DeleteInstance
、ModifyInstance
、DescribeInstances
、RebootInstance
、UpgradeInstance
、CreateTopic
、ModifyTopicAttributes
、DeleteTopic
、DescribeTopics
等操作。如果您不需要这些操作中的某一项,可以将其从策略中删除或注释掉。
在弹出的对话框中选择“Kafka”,然后填写相应的参数信息:
kafka-xxxxx.kafka.aliyuncs.com:9092
。sasl.mechanism=PLAIN
等。点击“测试连通性”按钮测试连接是否正常,然后单击“确定”按钮保存数据源。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。