V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sys64  ›  全部回复第 2 页 / 共 3 页
回复总数  50
1  2  3  
在使用 [Vector]( https://vector.dev/)( vrl 语言)时,消费 Kafka 数据需要遵循几个步骤。假设你已经通过 Vector 连接 Kafka ,并将 Kafka 数据流转换为 Vector 能处理的日志结构。接下来,你可以使用 VRL (Vector Remap Language) 来处理像 `[{ "a": 1 }, { "b": 2 }, { "c": 12 }, { "z": 83 }]` 这样的 JSON 数据。

以下是消费 Kafka 数据的流程:

### 1. Vector 配置 Kafka Source
首先,确保你的 `vector.toml` 文件中已经配置好了 Kafka Source 。简单示例如下:

```toml
[sources.kafka]
type = "kafka"
bootstrap_servers = "localhost:9092"
group_id = "consumer-group-id"
topics = ["my-topic"]
key_field = "key" # 如果 Kafka 数据有 key
value_field = "message" # 消息数据字段
encoding.codec = "json" # 假设 Kafka 数据是 JSON 格式
```

### 2. 使用 VRL 处理 Kafka 消息
假设 Kafka 消息的 `message` 字段包含了你的数据,例如 `[{ "a": 1 }, { "b": 2 }, { "c": 12 }, { "z": 83 }]`,你可以使用 VRL 脚本来提取和处理这些字段。

#### VRL 脚本示例:
```toml
[transforms.kafka_parser]
type = "remap"
inputs = ["kafka"]
source = '''
# 假设 message 字段包含 JSON 数据数组
.data = parse_json!(.message)
'''
```

### 3. 消费数据
当 `message` 是 `[{ "a": 1 }, { "b": 2 }, { "c": 12 }, { "z": 83 }]` 这样的数组时,VRL 处理步骤可以提取每个字段。

你可以直接在 `source` 部分进行各种操作,比如遍历 JSON 数组或处理特定的值:

```toml
source = '''
.data = parse_json!(.message)

# 遍历数组,提取每个元素
.fields = []
for item in .data do
.fields = .fields + [get(item, "a", "undefined")]
end
'''
```

### 4. 输出处理后的数据
处理完 Kafka 数据后,你可以将结果传递给某个 Sink ,例如 Console 、Elasticsearch 等。

```toml
[sinks.console]
type = "console"
inputs = ["kafka_parser"]
encoding.codec = "json"
```

### 示例流程总结
1. Kafka source 接收 `[{ "a": 1 }, { "b": 2 }, { "c": 12 }, { "z": 83 }]`。
2. 使用 VRL 的 `parse_json!` 函数解析 JSON 数据。
3. 遍历数组、提取每个 JSON 对象中的值。
4. 输出处理后的数据到 sink ,例如 Console 。

你可以根据业务需求修改 VRL 逻辑,处理和过滤特定字段、对值进行转换等。
我有次吃饭迟到一半发现有根头发,然后看了下长度,短发,好像是自己的。最后想了想就是自己的头发。
白色的牙膏也好使。
2024-01-03 16:39:03 +08:00
回复了 Ainokiseki 创建的主题 Go 编程语言 gRpc 有无方法可以手动发送一个 error?
proxy 是四层的负载均衡吗,可以改成 7 层的负载均衡看看。
nginx 好像 1.20 版本就支持 grpc 的负载转发。
2017-07-02 19:34:38 +08:00
回复了 Jaosn 创建的主题 Apple MacBook Pro 一觉醒来被猫咬了怎么办?
我的千兆网线被咬成百兆的了 哎
安装的 python 和 apache 也必须是相同 cpu 架构,同为 64 位,或 32 位
python3.5 python3.6 官网的提供的安装包的 python 是用 vc 14 编译的
所以你要下载对应 64 位或 32 位版本的  apache 压缩包

然后下载安装好对应的 vc 运行时

然后再 pip install mod_python

安装好,就可以运行 mod_wsgi-express module-config

然后会看到如下输出:


LoadFile "c:/program files/python36/python36.dll"
LoadModule wsgi_module "c:/program files/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/program files/python36"


将上面 3 行添加到 httpd.conf 里

可以运行下 httpd.exe -t 测试下配置文件是否有问题


可以参考下,官方的文档:

https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst
apache 和 mod_wsgi 在 windows 上的安装条件很苛刻的

编译 apache 的 visual c 运行时版本 和 编译 python 的版本必须一致

可以直接用 pip install mod_wsgi 来安装,安装好之后,将 那个.pyd 文件路径和 python.dll 文件写进 httpd.conf 文件
可以用 Apache + mod_wsgi 或 iis + wfastcgi
2017-05-12 16:21:56 +08:00
回复了 sys64 创建的主题 宠物 有没有想领养猫的,捡到一只小幼猫,坐标上海
2017-05-12 15:49:43 +08:00
回复了 sys64 创建的主题 宠物 有没有想领养猫的,捡到一只小幼猫,坐标上海
@Tuisku 坐标上海,改了下标题
2017-04-25 18:13:10 +08:00
回复了 pljhonglu 创建的主题 Linux centos 7 路由问题请教
在 enp3s0 上添加一行 DEFROUTE=no 纯属猜测,试试
2017-03-28 14:28:50 +08:00
回复了 citylcs 创建的主题 问与答 vultr 流量是怎么算的?
官方的 FAQ 里有提到, https://www.vultr.com/faq/

At what rate is overage bandwidth billed?

Bandwidth utilization in excess of instance allocation is charged at $0.01 per GB in North American and Western European locations. Due to higher regional costs, Singapore and Tokyo (Japan) overage is priced at $0.025 per GB and Sydney (Australia) overage is priced at $0.05 per GB.

How are monthly bandwidth caps calculated for hourly instances?

If your plan has 1000GB allocated to it, the amount of transfer per hour for overage calculations is 1000 / 672 = 1.48GB/hour. Your pending charges will reflect the overage calculated by this formula. Note: In some cases it may be less expensive to leave your instance running than to destroy it and be assessed overage charges.


以下来自谷歌翻译:

超额费用是多少费率?

超过实例分配的带宽利用率在北美和西欧地区每 GB 收取 0.01 美元。由于区域成本较高,新加坡和东京(日本)的超额售价为每 GB 0.025 美元,悉尼(澳大利亚)的超额售价为每 GB 0.05 美元。

每小时实例的月带宽上限如何计算?

如果您的计划已分配给 1000GB ,则每小时超量计算的传输量为 1000/672 = 1.48GB /小时。您的待处理费用将反映此公式计算的超额。注意:在某些情况下,将您的实例运行而不是销毁它并且被评估超额费用可能会更便宜。
你的头像太魔性了
2017-02-03 23:14:11 +08:00
回复了 Event 创建的主题 问与答 想问问各位, 0myun.me 和 lmyun.me 哪一个更适合于“灵梦云”呢
@debiann dropbox box.net
应该,要加个锁,可以用 redis 或 memcached 实现,具体的就不知道了。
2016-11-29 18:48:40 +08:00
回复了 stevenjiang91 创建的主题 支付宝 支付宝和微信之间,差的不止是一个张小龙
@BigDipper7 对, mobike 先扫码,然后提示下载安装他们的客户端才能用。
2016-11-29 18:44:41 +08:00
回复了 stevenjiang91 创建的主题 支付宝 支付宝和微信之间,差的不止是一个张小龙
@Crossin 好像支付宝更快一点啊,微信还要点到钱包里,点好几次。
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2614 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 03:44 · PVG 11:44 · LAX 20:44 · JFK 23:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.