我正在尝试将数据直接从KSQL接收到InfluxDB(或任何其他需要定义的连接器)中。我能够在简单的情况下使事情正常工作,但当模式需要复杂类型时,我就开始遇到麻烦。(即InfuxDB的标签)。
下面是我的流/模式的一个示例:
Field | Type
-------------------------------------------------------------------
ROWKEY | VARCHAR(STRING) (primary key)
FIELD_1 | VARCHAR(STRING)
FIELD_2 | VARCHAR(STRING)
FIELD_3 | VARCHAR(STRING)
FIELD_4 | DOUBLE
TAGS | MAP<STRING, VARCHAR(STRING)>
如果我手动创建一个AVRO模式并从一个简单的生产者填充记录,我就可以通过这里的入门指南并嵌入InfluxDB的标记。
但是,当我转移到KSQL时,如果我试图将AVRO流直接存入InfluxDB中,就会丢失关于复杂类型(标记)的信息。我注意到这篇博客文章中的警告,“警告ksqldb/ksql还不能以与此连接器兼容的Avro格式写入数据”
接下来,我尝试将AVRO流转换为JSON格式,但现在我明白了我必须在每个记录中指定模式,类似于这个问题提出的问题。我还没有能够将AVRO流转换为JSON流并同时嵌入模式和有效负载。
最后,我看到了kafkacat的“摇摆解决方案”,但这将迫使我将记录从KSQL转储到kafkacat中,然后再返回到Kafka中,最后才到达Infux。
是否有一种方法可以直接将JSON或AVRO格式的KSQL中的复杂记录接收到连接器中?
我认为ksqlDB还不能以InfluxDB要求的格式输出AVRO数据的原因是,由于AVRO映射需要非空键,而SQLmap
类型允许空键,所以它不会将tags
字段作为AVROmap
类型输出。因此,ksqlDB将映射序列化为键值条目的Avro数组
。
要获得与Avro一起工作的东西,您需要以下两种方法:
请随时投票/评论这些问题,以提高他们的形象。
以前,基于JSON的解决方案是行不通的,因为正如您所指出的,连接器需要在有效负载中嵌入JSON模式。但是,汇合平台/模式注册中心的最新版本支持模式注册中心中的JSON模式。因此,虽然我还没有尝试过,但升级到最新的CP版本可能意味着基于JSON的解决方案可以工作。如果不是,那么可能需要提出一个JIRA/GitHub票证来升级相应的组件,使其工作。
我有一些docker conatiner,现在我想用ssh进入一个。我通过ssh连接到了docker容器。 但是现在我有一个问题,我不知道我可以用哪个用户访问这个容器? 我在主机(web)上的两个用户中都尝试过
有没有办法通过Kafka Connect S3接收器连接器标记写入S3存储桶的对象。我正在读取来自Kafka的消息,并使用S3接收器连接器将avro文件写入S3存储桶。当文件写入S3存储桶时,我需要标记文件。
null 任何想法都将受到赞赏。
问题内容: 如何查看我的池库(C3P0)创建和关闭JDBC连接的时间? 注意:我已经对此进行了研究,并且已经找到了解决方案。我将其发布在这里,以便对其他人有用,并且可以参考以防万一将来忘记它。 欢迎其他方法/答案。 问题答案: 库可用于记录JDBC连接。将此库添加到POM- 配置。修改日志记录选项以根据自己的需要调整详细信息级别。 配置数据源。 关于上述数据源配置的注意事项: 您通常的驱动程序类名
问题内容: 我对如何将日志条目直接放入(而不是logstash)感到有些困惑。到目前为止,我发现了一些附加目的地(,等等),允许将日志发送到远程主机,也可能这似乎让我们日志转换为“弹性友好”的格式,但这种方法看起来古怪......还是我错误?这是将日志发送到的一种方法吗? 到目前为止,我有这样的配置: 但是我得到一个错误: 我找不到任何有用的示例,所以我无法理解我该怎么做以及如何解决。谢谢。 问题
我试图通过Windows服务从套接字接收数据,但当我建立连接时,它会立即生效。我希望不断地接收它(当端口关闭时,它将断开连接)。我怎样才能做到这一点? 这是我现在的输出; “GET/HTTP/1.1 主持人:127.0.0.1:1994 连接:保持活力 缓存控制:最大年龄=0 升级-不安全-请求: 1 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)Apple