feat: 更新

master
old-tom 6 months ago
parent c119a20827
commit d9802f3a64

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

@ -0,0 +1,5 @@
+ 读取 kafka 数据源(source) 插入模式
![[935618a04697874b38ab1332296451c.png]]
+ 写入 kafka 数据源slink upsert模式 (设置主键)
![[Pasted image 20250210112334.png]]

@ -0,0 +1,18 @@
[Kafka快速入门Kafka消费者-腾讯云开发者社区-腾讯云](https://cloud.tencent.com/developer/article/2218267)
| 参数名称 | 说明 |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| bootstrap.servers | 向Kafka集群建立初始连接用到的host/port列表 |
| key.deserializer和value.deserializer | 指定接收消息的key和value的反序列化类型。一定要写全类名 |
| group.id | 标记消费者所属的消费者组 |
| enable.auto.commit | 默认值为true消费者会自动周期性地向服务器提交偏移量 |
| auto.commit.interval.ms | 如果设置了 enable.auto.commit 的值为true 则该值定义了消费者偏移量向Kafka提交的频率默认5s |
| auto.offset.reset | 当Kafka中没有初始偏移量或当前偏移量在服务器中不存在数据被删除了该如何处理earliest自动重置偏移量到最早的偏移量。latest默认自动重置偏移量为最新的偏移量。none如果消费组原来的previous偏移量不存在则向消费者抛异常。anything向消费者抛异常 |
| offsets.topic.num.partitions | __consumer_offsets 的分区数,默认是 50 个分区 |
| heartbeat.interval.ms | Kafka 消费者和 coordinator 之间的心跳时间,默认 3s。该条目的值必须小于 session.timeout.ms 也不应该高于session.timeout.ms的 1/3 |
| session.timeout.ms | Kafka 消费者和 coordinator 之间连接超时时间,默认 45s。超过该值该消费者被移除消费者组执行再平衡 |
| max.poll.interval.ms | 消费者处理消息的最大时长,默认是 5 分钟。超过该值,该消费者被移除,消费者组执行再平衡 |
| fetch.min.bytes | 默认 1 个字节。消费者获取服务器端一批消息最小的字节数 |
| fetch.max.wait.ms | 默认 500ms。如果没有从服务器端获取到一批数据的最小字节数。该时间到仍然会返回数据 |
| fetch.max.bytes | 默认Default:5242880050m。消费者获取服务器端一批消息最大的字节数。如果服务器端一批次的数据大于该值50m仍然可以拉取回来这批数据因此这不是一个绝对最大值。一批次的大小受 message.max.bytes broker configormax.message.bytestopicconfig影响 |
| max.poll.records | 一次 poll 拉取数据返回消息的最大条数,默认是 500 条 |

@ -0,0 +1,47 @@
2.3.8 版本及以前版本会从所有节点中随机选择节点来运行任务。每个任务需要的slot=2+N并行度。默认情况下slot为动态不限制个数(也可以设置为固定值)。
官方计划添加2种slot分配机制 ([[Feature][Core] Add slot allocation strategy · Issue #8205 · apache/seatunnel](https://github.com/apache/seatunnel/issues/8205)):
+ SLOT_RATIO : 通过计算slot使用率=(总槽数-未分配的槽数)/总槽数
+ SYSTEM_LOAD :
![[Pasted image 20250206161739.png]]
翻译如下:
1. 时间权重设计
时间权重反映了时间因素对调度优先级的影响:
* 最近的数据被赋予更高的权重,而历史数据逐渐衰减。
* 使用4,2,2,2,1,1的分布来归一化每个数据点的时间权重计算如下:
时间权重比=当前权重/10
对于启动时少于5个数据点的集群将单独应用规范化并根据需要进行动态调整。
2. 资源利用率计算
CPU和内存利用率与加权评估相结合以获得整体资源空闲率
资源空闲率=(1-CPU利用率)*CPU权重+(1-内存利用率)*内存权重
(1 - CPU Utilization) 和 (1 - Memory Utilization) 代表空闲率。
CPU和内存权重根据特定需求可调例如0.6和0.4)以适应各种场景。
1. 时间衰减和调度优先级公式
考虑到时间权重的衰减,调度优先级的公式是:
总体资源空闲率=\sum_{i=1}^{5}((1-CPU利用率_i)*CPU权重+(1-内存利用率_i)*内存权重)*时间权重_i)/(CPU权重+内存权重)
2. 动态调整槽分配的资源空闲率
在分配多个槽时,考虑实时更新和资源状态的动态模拟(因为资源消耗不会在槽分配后立即改变):
每槽资源使用比率=(1-总资源空闲率)*已分配槽的数量
在槽分配之后,对应节点的空闲率会更新:
后槽分配空闲率=总资源空闲率-每槽资源使用比率
默认情况下假设单个槽消耗10%的资源。这种假设可以防止在初始部署期间由于缺乏精确的使用数据而导致单个节点过度分配资源。随后的监控将细化这些估计。
这种方法确保了调度更准确地反映实际资源使用情况。
3. 引入平衡因子
仅基于槽分配的动态调整可能会引入不准确性。为了衡量节点的当前负载并防止资源过于集中,引入了一个基于槽数量的平衡因子:
平衡因子_i=1-S_used,i/S_total,i
S_used,i: 已分配给节点 i 的槽数量
S_total,i: 节点 i 上的总槽数量
调度优先级通过平衡因子进行调整:
W_i = α·Post-Slot Allocation Idle Rate_i + β·BalanceFactor_i
参数解释:
α: 强调资源利用率的权重例如0.7)。
β: 用于防止单个节点过载的平衡因子的权重例如0.3)。
4. 动态调整逻辑
定期收集CPU和内存利用率维护最新的5个数据点。
动态更新同一任务的权重,逐步降低较旧数据的权重。
根据槽使用情况动态调整。
示例:
假设有两个节点需要10个槽
* 节点A有10个空闲槽。
* 节点B有20个空闲槽。
根据第4步和第5步的计算如果节点A始终比节点B具有更高的权重那么仍然应该将资源分配给节点A。这个结果可能表明集群配置不佳例如工作者节点上的槽不足

@ -0,0 +1 @@
[Apache SeaTunnel 整体架构运行原理 - OSCHINA - 中文开源技术交流社区](https://my.oschina.net/SeaTunnel/blog/17504110)

@ -0,0 +1,2 @@
[腾讯基于 LLM 的智能数据分析平台 OlaChat 的落地实践__财经头条](https://t.cj.sina.com.cn/articles/view/2674405451/9f68304b019015va0)

@ -20,7 +20,6 @@ http://localhost:7474/ neo4j/clone-formula-shelf-hair-neptune-3446
+ sqlserver 2008
sa/root@123
+ kafka
```shell
docker pull zookeeper
docker pull wurstmeister/kafka
@ -33,10 +32,6 @@ docker volume create kafka_vol
docker run -d --name kafka-test -p 9092:9092 \ --link zookeeper-test \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper-test:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=localhost \ --env KAFKA_ADVERTISED_PORT=9092 \ --env KAFKA_LOG_DIRS=/kafka/logs \ -v kafka_vol:/kafka \ wurstmeister/kafka
```
```shell
docker run -d --name kafka-test -p 9092:9092 \ --link zookeeper-test \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper-test:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=localhost \ --env KAFKA_ADVERTISED_PORT=9092 \ --env KAFKA_LOG_DIRS=/kafka/logs \ -v kafka_vol:/kafka \ wurstmeister/kafka
```
+ minio http://localhost:9000 admin/admin123
```shell
docker pull minio/minio
@ -168,7 +163,7 @@ $ docker-compose --profile all up -d
+ dify (windwos)
参考文档 [Deploy with Docker Compose | Dify](https://docs.dify.ai/getting-started/install-self-hosted/docker-compose)
参考文档 [Deploy with Docker Compose | Dify](https://docs.dify.ai/getting-started/install-self-hosted/docker-compose) 访问地址:http://localhost 892955278@msn.cn / ruirui920917@
```text
cd E:\code\opensource\dify\docker
docker compose up -d

@ -10,11 +10,9 @@ http://172.31.51.150:7001/access/login
http://172.31.51.165:7001/access/login
登录账号admin 1234abcd
本机获取token
[10.2.0.2:8096/dataintegration/auth/accessToken](http://10.2.0.2:8096/dataintegration/auth/accessToken)
启动数据集成连接检测工具
```shell
nohup /home/jdk-11.0.20/bin/java -jar -Dspring.profiles.active=prod dcm-dataIntegration.jar >/dev/null 2>&1 &

Loading…
Cancel
Save