flink理论干货笔记(4)

301. TableFactory允许从基于字符串的属性创建不同的表相关实例。调用所有可用工厂以匹配给定的属性集和相应的工厂类。利用Java spi进行发现。

302. TableFactory接口或特质的方法有requiredContext和supportedProperties 

303. 可以自定义TableSourceFactory来返回StreamTableSource,比如实现StreamTableSourceFactory

304. sql客户端也能使用TableFactory,可在yaml配置

305. 可以自定义连接器,需要实现ConnectorDescriptor接口,然后在tableEnv.connect()中使用

306. table&sql的用户定义函数,包括ScalarFunction、TableFunction、AggregateFunction

307. 不要将TableFunction实现为scala object,因为它是单例的,会导致并发问题

308. AggregateFunction需要实现createAccumulator()、accumulate()、getValue()方法。根据用例,可能还需要retract()、merge()、resetAccumulator()方法

309. FunctionContext的方法有getMetricGroup、getCachedFile、getJobParameter 

310. ScalarFunction的open方法,使用FunctionContext作为参数。而close方法用于清理。 

311. start-cluster.sh用于启动具有worker的本地集群 

312. sql-client.sh  embedded用于启动嵌入式独立进程,或连接到远程sql客户端网关来启动sql client cli,会读取sql-client-defaults.yaml

313. cli支持两种维护和可视化结果的模式,set execution.result-mode=table和set execution.result-mode=changelog

314. sql查询需要一个执行它的配置环境,也叫做环境文件,是一个yaml文件

315. cli会话中设置的属性(例如,使用set命令)具有最高优先级。cli commands>session 环境文件>默认环境文件

316. 可以在环境文件指定更细粒度的重启配置,包括以下策略:fallback、none、fixed-delay、failure-rate

317. sql客户端不需要maven或sbt依赖,而是直接用--jar或--library来添加依赖项提交给集群

318. flink sql支持视图,可以在yaml中定义,如views:…,或在cli会话中定义,如create view…,且会话环境定义的视图具有最高优先级

319. datastream和dataset api统称为core api,而table api是一种声明式的DSL,所以table api比core api更简洁,代码更少,甚至会优化程序,但它的表现力不如core api

320. 问题:datastream只有transformation算子,没有action算子? 

321. 算子子任务的数量是该特定算子的并行度。同一程序的不同算子可能具有不同的并行级别。 

322. flink使用流重放和检查点的组合来实现容错。 

323. 批处理的容错不使用检查点,完全通过重放流来恢复。

324. dataset引入了特殊的同步,即超步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值