用例测试数据来自于 CDC Connectors for Apache Flink官网,本文给 orders 表增加一个 region 字段,同时增加'connector'='print'类型的 print_sink 表,其字段和 orders 表的相同。 可通过 Maven 运行单元测试。 $ cd flink-sql-security $ mvn test 详细测试用例可查看源码中的单测 RewriteDataMaskTest 和 Execute...
首先对于调试的 SQL,系统会在 SQL 翻译的时候将原来的一个 Sink 替换为专用的 PrintSink,这解决了需求中的前两点。 然后对 PrintSink 进行限流,通过 Flink 的反压机制达到总体的限流,并且会限制作业的最长执行时间,超时之后系统会自动把作业结束掉,这解决了需求中的资源限制这点。 最后为了更快地响应,调试的作业...
val sql :String ="select id,tempreture from dataTable where id = 'sensor_1'" //基于环境,进行执行SQL。 val resultSqlTable = tabEnv.sqlQuery(sql) //转换成流的话,就是可以进行print输出。 resultSqlTable.toAppendStream[(String, Double)].print("sql") env.execute() } } 1. 2. 3. 4. ...
【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、广播变量)介绍及示例(6) - 分布式缓存 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、广播变量)介绍及示例(7) - 广播变量 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhous...
Flink SQL 使用 Flink SQL 连接池来管理数据库连接。每次创建一个连接时,Flink SQL 会从连接池中获取一个连接。如果连接池中没有可用的连接,Flink SQL 会创建一个新的连接。 在您的示例中,如果两个 Sink 表都写入 dbtest 数据库,那么 Flink SQL 会使用同一个连接池来管理这两个连接。 以下是 Flink SQL 连...
(order_amount) AS total_amount FROM csv_source GROUP BY user_id";// // 执行查询并打印// tableEnv.executeSql(query).print();// env.execute("Flink SQL Demo");// 定义输出数据源StringcreateSinkTableDdl="CREATE TABLE csv_sink ("+" user_id INT,"+" total_amount DOUBLE"+") WITH ("+...
,pvbigint,uvbigint)with('connector'='print');insertintoprint_sinkselectdate_format(window_start,'HH:mm:ss') , date_format(window_end,'HH:mm:ss') ,count(id) ,count(distinctid)FROMTABLE( TUMBLE(TABLEdatagen_source, DESCRIPTOR(proc_time), INTERVAL'10'SECOND ))GROUPBYwindow_start, window_...
下面是个简单的flink应用代码,红框中的print方法就是sink操作: 下图是官方给出的sink方式,都是DataStream类的API,直接调用即可实现sink,刚才代码中的print就是其中一个: 接下来看看上图中API的源码,先看print方法,在DataStream.java中,如下,实际上是调用了addSink方法,入参是PrintSinkFunction: ...
'protobuf.class-name' = 'flink.examples.sql._04.format.formats.protobuf.Test' ) 数据汇表 DDL: CREATE TABLE print_sink ( name STRING , names ARRAY<STRING> , si_map MAP<STRING, INT> ) WITH ( 'connector' = 'print' ) Transform 执行逻辑: ...
结合我们刚刚说的 sql source、sink 中主要包含 5 点解释一下: 来个kafka source 的例子: 其对应的 datastream 写法如下: 将sql source 和 datastream source 的组成部分互相映射起来可以得到下图,其中 datastream、sql 中颜色相同的属性互相对应: 可以看到,将所有的 sql 关系代数都映射到 datastream api 上,会有...