如何在Memgraph中定义并使用以数字开头的Kafka消费者组
Memgraph Kafka流消费者组名称以数字开头创建失败的问题
在Memgraph里创建Kafka流时,碰到个限制:消费者组名称要是以数字开头,系统直接拒绝创建;但给数字加个字母前缀(比如group12345abcde这种),就能正常创建。按道理说,CONSUMER_GROUP后面的内容应该被当成字符串处理,不该管开头是不是数字才对。
问题根源
这是因为Memgraph的Cypher解析器处理CONSUMER_GROUP参数时,会把不带引号的标识符当成数据库标识符来解析——而数据库标识符的命名规则明确要求不能以数字开头。虽然从用户角度觉得应该按字符串处理,但解析器的规则就是这么设定的。
解决方法
要么给消费者组名称加字母前缀(就像你提供的修正语句那样),要么直接给名称加上单引号,强制解析器把它当作字符串处理,比如CONSUMER_GROUP '123abc',两种方式都能解决问题。
修正后的完整查询语句:
CREATE KAFKA STREAM my_stream TOPICS sales-data TRANSFORM my_app.sales_transformations CONSUMER_GROUP group12345abcde BOOTSTRAP_SERVERS 'kafka.example.com:9092' CREDENTIALS {'sasl.username':'my_username', 'sasl.password':'my_password', 'security.protocol':'SASL_SSL', 'sasl.mechanism':'PLAIN'};
内容的提问来源于stack exchange,提问作者GrandMel
相关产品推荐
相关产品推荐

