在flink sql开发里面,我们知道运行的都是flink sql任务,所以所有的sql都是基于库表来执行的,因此这里的会涉及到创建的步骤。在flink sql中支持的创建场景有:
1、创建catalog 2、创建database 3、创建table 4、创建view 5、创建function
下面我们挨个介绍下。
1)创建catalog
这个catalog的话,定义为多数据源目录,一般在数据湖相关的领域里面使用会比较多,创建catalog的语法结构是:
CREATE CATALOG catalog_name WITH (key1=val1, key2=val2, ...)
例如我们这里创建一个hive的catalog,那么创建的catalog示例sql语句是:
CREATE CATALOG ods_catalog WITH ( 'type' = 'hive', 'default-database' = 'default', 'hive-version' = '2.1.1', 'hive-conf-dir' = '/etc/hive/conf', 'hadoop-conf-dir' = '/etc/hadoop/conf' );
2)创建database
这里和日常使用是一样的,就是创建对应的库名,创建database的语法结构是:
CREATE DATABASE [IF NOT EXISTS] [catalog_name.]db_name [COMMENT database_comment]
下面我们创建一个database,示例sql语句如下:
CREATE DATABASE IF NOT EXISTS ods_catalog.test
3)创建table
这里就是创建表了,这里的建表的话需要带上列属性信息,同时还需要有with的条件,with是必填的,创建table的语法结构是:
CREATE TABLE [IF NOT EXISTS] [catalog_name.][db_name.]table_name ( { <列定义> | <计算列定义> }[ , ...n] [ <Watermark 定义> ] [ <表约束定义, 例如 Primary Key 等> ][ , ...n] ) [COMMENT 表的注释] [PARTITIONED BY (分区列名1, 分区列名2, ...)] WITH (键1=值1, 键2=值2, ...) [ LIKE 其他的某个表 [( <LIKE 子句选项> )] ]
关于上诉字句的详细说明有:
<列定义>: column_name column_type [ <column_constraint> ] [COMMENT column_comment] <列的约束定义>: [CONSTRAINT constraint_name] PRIMARY KEY NOT ENFORCED <表的约束定义>: [CONSTRAINT constraint_name] PRIMARY KEY (column_name, ...) NOT ENFORCED <元数据列列定义:虚拟列>: column_name column_type METADATA [ FROM metadata_key ] [ VIRTUAL ] <计算列定义>: column_name AS computed_column_expression [COMMENT column_comment] <Watermark 定义>: WATERMARK FOR rowtime_column_name AS watermark_strategy_expression <表名称定义>: [catalog_name.][db_name.]table_name <like选项>: { { INCLUDING | EXCLUDING } { ALL | CONSTRAINTS | PARTITIONS } | { INCLUDING | EXCLUDING | OVERWRITING } { GENERATED | OPTIONS | WATERMARKS } }[, ...]
4)创建view
这里创建view的话,就相当于创建视图,和日常使用是一样的,创建view的语法如下:
CREATE [TEMPORARY] VIEW [IF NOT EXISTS] [catalog_name.][db_name.]view_name AS SELECT 语句
创建的视图是一张虚拟表,这个虚拟表是基于某条select语句构建的数据源。
5)创建function
这里的function不是存储过程,而是用户自定义的程序包,其实也可以看做是存储过程,在项目里面调用即可,创建function的语法如下:
CREATE TEMPORARY SYSTEM FUNCTION 函数名 AS '函数类全名' [LANGUAGE JAVA|SCALA|Python]
创建function的示例sql如下:
CREATE FUNCTION parserJsonArray AS 'qhc.com.flink.UDTF.ParserJsonArray' language JAVA;
以上就是关于flink sql中create相关的语句说明。
还没有评论,来说两句吧...