[实战-11] FlinkSql设置时区(table.local-time-zone)

news/2024/10/31 15:11:25/

table.local-time-zone

  • table.local-time-zone
  • 代码测试
  • flink代码
  • 执行结果截图
    • 1. Asia/Shanghai 结果如下
    • 2. UTC结果如下

table.local-time-zone

设置flink程序运行期间得时区,flink的内置数据类型TIMESTAMP(3), 我们设置水位线都是基于TIMESTAMP(3)类型,
当我们flinkSql 查询flink表的时候,因为时区不同 TIMESTAMP 展示给我们的字符串也是不同的。

代码测试

mysql时区是Asia/Shanghai

CREATE TABLE `versioned_rates` (`operation_code` int DEFAULT NULL,`update_time` datetime DEFAULT NULL,`product_id` varchar(255) DEFAULT NULL,`product_name` varchar(255) DEFAULT NULL,`price` float DEFAULT NULL,`time_long` bigint NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
INSERT INTO flink.versioned_rates (operation_code,update_time,product_id,product_name,price,time_long) VALUES 
(1,'2024-01-01 00:01:00.0','p_001','scooter',11.11,1730346179000)
,(1,'2024-01-01 00:02:00.0','p_002','basketball',23.11,1730346179000)
,(2,'2024-01-01 12:00:00.0','p_001','scooter',11.11,1730346179000)
,(3,'2024-01-01 12:00:00.0','p_001','scooter',12.99,1730346179000)
,(2,'2024-01-01 12:00:00.0','p_002','basketball',23.11,1730346179000)
,(3,'2024-01-01 12:00:00.0','p_002','basketball',19.99,1730346179000)
,(4,'2024-01-01 18:00:00.0','p_001','scooter',12.99,1730346179000)
;

flink_31">flink代码

package com.pg.TableAndDataStreamApi;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;
import org.apache.flink.table.api.config.TableConfigOptions;/*
*
* */
public class version_table {private static final String SOURCE="CREATE TABLE mysql_table(\n" +"\toperation_code int,\n" +"\tupdate_time TIMESTAMP(0),\n" +"\tproduct_id string,\n" +"\tproduct_name string,\n" +"\tprice float,\n" +"\ttime_long bigint,\n" +"\tts AS TO_TIMESTAMP_LTZ(time_long,3)\n" +"    ) WITH (\n" +"   'connector' = 'jdbc',\n" +"   'url' = 'jdbc:mysql://ip:3306/flink',\n" +"   'driver'='com.mysql.cj.jdbc.Driver',\n "+"   'username'='root',\n"+"   'password'='密码',\n"+"   'table-name' = 'versioned_rates'\n" +")";public static void main(String[] args) throws Exception {// 创建执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);tableEnv.executeSql(SOURCE);Configuration configuration = new Configuration();
//        configuration.set(TableConfigOptions.LOCAL_TIME_ZONE, "UTC");configuration.set(TableConfigOptions.LOCAL_TIME_ZONE, "Asia/Shanghai");tableEnv.getConfig().addConfiguration(configuration);// 从 MySQL 表中选择所有行Table t = tableEnv.sqlQuery("SELECT * FROM mysql_table");t.execute().print();}
}

执行结果截图

1. Asia/Shanghai 结果如下

在这里插入图片描述

2. UTC结果如下

在这里插入图片描述


http://www.ppmy.cn/news/1543367.html

相关文章

seurat对象内部结构

10x Genomics格式: barcodes.tsv 、features/genes.tsv和matrix.mtx文件 是10X Genomics单细胞转录组测序数据的标准文件格式。这些文件通常存储在一个目录中,可以使用Read10X函数从R语言中读取。 barcodes.tsv:包含了每个单细胞的条形码信息…

【AAOS】【源码分析】CarSystemUI

目录 目录 概述 CarSystemUI组件 源代码 源码位置 主要模块 编译选项 CarSystemUI与SystemUI 编译方式 Car Emulator默认服务 CarSystemUI 启动流程 缩略词 概述 AAOS中的SystemUI虽然相较手机要简单不少,但却是车载开发中的一个重要组件,它负责管理和控制车机…

基于SpringBoot的流浪动物管理系统设计与实现

摘要 随着流浪动物数量的增加,如何有效管理这些动物成为社会关注的重要问题。基于Spring Boot框架的流浪动物管理系统,旨在通过信息化手段提高流浪动物的管理效率,帮助管理人员记录、追踪、安置和处理流浪动物的信息。该系统集成了用户管理、…

【无标题】idea 一次性切换多个项目的分支

适合一个目录下面有多个子项目,维护着共同的分支 勾选Settings-Version Control->Git->Executor branch operations on all roots 勾选前(是不能一次切换多个项目的分支为同一个分支的) 勾选此选项 勾选后(可以一次切换多个…

网络编程 TCP编程 Linux环境 C语言实现

所有基于数据传输通信的程序,都会被分成两种角色: 1. 服务端:又称为服务器 server 提供一种通信服务的进程 基本工作过程是:1> 接收请求数据 2> 处理请求数据 3> 发送处理结果 2. 客户端:client 使用一种通…

《JVM第6课》本地方法栈

文章目录 1 什么是本地方法1.1 本地方法的好处1.2 声明本地方法1.3 实现本地方法1. 生成头文件2. 编写C语言实现3. 编译C代码4. 运行Java程序 1.4 使用JNA1.5 总结 2 本地方法栈2.1 特点2.2 本地方法栈与Java虚拟机栈的区别2.3 本地方法栈的工作流程2.4 总结 无痛快速学习入门J…

T527 Android13开发环境

一、环境系统选择: 开发环境建议选用ubuntu,下面ubuntu18.04 为例 二、环境依赖安装: 1、安装依赖库 sudo apt-get install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib gmultilib libc6-dev-…

Linux:编辑器Vim和Makefile

✨✨所属专栏:Linux✨✨ ✨✨作者主页:嶔某✨✨ vim的三种常用模式 分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 各模式的功能区分如下&…