Flink-Paimon 案例

本文详细介绍了如何在Flink环境中部署Paimon,包括下载和配置步骤,创建PaimonCatalog和Table,以及执行OLAP和Streaming查询。教程涵盖了从本地集群启动到数据处理和分析的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink-Paimon 案例
1、下载 Flink Jar 包并解压
tar -xzf flink-*.tgz
2、下载 Paimon Jar 包放进 Flink 的 lib 中
cp paimon-flink-*.jar <FLINK_HOME>/lib/
3、如果运行在 Hadoop 环境,则向 lib 中添加依赖
cp flink-shaded-hadoop-2-uber-*.jar <FLINK_HOME>/lib/
4、修改 flink-conf.yaml 配置,并启动 Flink 本地集群
-- 修改配置
taskmanager.numberOfTaskSlots: 2

-- 启动集群
<FLINK_HOME>/bin/start-cluster.sh
5、启动 Flink SQL client
<FLINK_HOME>/bin/sql-client.sh
6、创建 Paimon Catalog 和 Table
CREATE CATALOG my_catalog WITH (
    'type'='paimon',
    'warehouse'='file:/tmp/paimon'
);

USE CATALOG my_catalog;

-- create a word count table
CREATE TABLE word_count (
    word STRING PRIMARY KEY NOT ENFORCED,
    cnt BIGINT
);

使用 FlinkGenericCatalog

CREATE CATALOG my_catalog WITH (
    'type'='paimon-generic',
    'hive-conf-dir'='...',
    'hadoop-conf-dir'='...'
);

USE CATALOG my_catalog;

-- create a word count table
CREATE TABLE word_count (
    word STRING PRIMARY KEY NOT ENFORCED,
    cnt BIGINT
) WITH (
    'connector'='paimon'
);
7、写数据
-- create a word data generator table
CREATE TEMPORARY TABLE word_table (
    word STRING
) WITH (
    'connector' = 'datagen',
    'fields.word.length' = '1'
);

-- paimon requires checkpoint interval in streaming mode
SET 'execution.checkpointing.interval' = '10 s';

-- write streaming data to dynamic table
INSERT INTO word_count SELECT word, COUNT(*) FROM word_table GROUP BY word;
8、OLAP 查询
-- use tableau result mode
SET 'sql-client.execution.result-mode' = 'tableau';

-- switch to batch mode
RESET 'execution.checkpointing.interval';
SET 'execution.runtime-mode' = 'batch';

-- olap query the table
SELECT * FROM word_count;
9、Streaming 查询
-- switch to streaming mode
SET 'execution.runtime-mode' = 'streaming';

-- track the changes of table and calculate the count interval statistics
SELECT `interval`, COUNT(*) AS interval_cnt FROM
    (SELECT cnt / 10000 AS `interval` FROM word_count) GROUP BY `interval`;
10、退出
-- exit sql-client
EXIT;

-- 停止本地集群
./bin/stop-cluster.sh
### Paimon 数据与 Flink 的集成使用 #### 创建 Catalog 并管理表 为了利用 Paimon 进行数据处理,首先需要配置并创建一个 catalog 来管理表结构。这可以通过定义相应的环境设置以及指定存储位置来完成[^1]。 ```sql CREATE CATALOG paimon_catalog WITH ( 'type'='paimon', 'warehouse'='/path/to/paimon/warehouse' ); ``` #### 插入或更新数据到 Paimon 表 一旦建立了 catalog 及其下的表,就可以采用标准 SQL `INSERT INTO` 或者更复杂的 DML (Data Manipulation Language) 命令来进行数据的操作了。对于支持 Call Statements 特性的 Flink 1.18 及以上版本而言,可以直接执行这些命令以实现对 Paimon 表内数据和元数据的修改操作[^2]。 ```sql INSERT INTO my_paimon_table VALUES ('value1', 'value2'); UPDATE my_paimon_table SET column_name = value WHERE condition; ``` #### 流式处理场景中的应用实例 考虑到 Paimon 支持构建实时 Lakehouse 架构的能力,这意味着可以在同一平台上同时处理批量和流式的作业。例如,在电商推荐系统中,可以持续不断地从 Kafka 主题读取消费者的浏览行为日志,并将其写入至基于 Paimon 存储格式设计的商品点击预测模型训练所需的特征库中;与此同时,还可以定期触发离线任务去优化该模型参数,从而提高在线服务的质量[^3]。 #### 文件系统的交互方式 除了上述提到的功能外,Paimon 提供了一套完整的文件系统 API 接口用于访问底层物理介质上的对象。这对于那些希望进一步定制化开发流程的应用开发者来说是非常有用的工具集之一[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫爱吃小鱼粮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值