目前SQL任务开发支持通过DDL、Meta两种方式进行开发,并基于代码内容进行调试开发。详细 SQL 语法讲解请参考 SQL 开发文档 章节。

引擎版本


Easystream支持多引擎版本兼容,目前已支持Flink 1.10、1.12、1.14。

DDL 方式


SQL 任务支持 Flink SQL。原始的 Flink SQL 的使用方式为先使用 CREATE 语句创建元数据,然后再编写相关的处理 SQL。相关处理逻辑如下所示。

CREATE TABLE blog_canal(
  ID BIGINT,
  UserID BIGINT,
  Title STRING,
  Abstract STRING,
  AllowView INT,
  PublishTime BIGINT,
  AccessCount INT,
  CommentCount INT,
  ndc_type_ STRING
) WITH(
  'connector.type' = 'kafka',
  'connector.topic' = 'Blog_Canal2',
  'connector.properties.bootstrap.servers' = 'xxx',
  'connector.properties.group.id' = 'Blog_Canal',
  'format.type' = 'ndc-dbhub',
  'format.split-update' = 'true',
  'connector.version' = 'universal',
  'connector.startup-mode'='timestamp',
  'connector.specific-timestamp' = '1608602506000'
);
CREATE CATALOG slothTest WITH (
  'hive-site'='hive-site.xml',
  'hdfs-site'='hdfs-site.xml',
  'core-site'='core-site.xml',
  'type' = 'arctic',
  'auth.method' = 'simple',
  'simple.user.name' = 'sloth'
);
insert into
  slothTest.testdb.blog
select
  ID as id,
  UserID as user_id,
  Title as title,
  Abstract as abstract,
  AllowView as allow_view,
  PublishTime as publish_time,
  AccessCount as access_count,
  CommentCount as comment_count,
  ndc_type_ as arctic_action_
from
  blog_canal;

Meta 方式


说明:EasyStream 在LTS650 Update0.9版本以后,SQL 任务在Meta开发方式中,使用数据源的方式由 [数据源名称].[database].[table] 变更为 [数据源标识].[database].[table],已存在的元数据任务如使用数据源名称与数据源标识名称不同的数据源,重启时会报错,修改后数据源信息后即可正常重启。
说明:数据源标识可在数据源管理中查看。

DDL 方式需要重复编写 CREATE 语句,不同的人编写 CREATE 语句还可能存在一定的偏差导致运行结果不一致。为了解决这些问题本平台在原始的基础上将流信息 meta 化,避免用户重复编写 CREATE 语句,做到在一个地方定义多处复用。使用方式如下:

  1. 登记数据源,在数仓中登记相关的数据源。详情请参考 数据源登记 章节。

  2. 在数仓-流表管理页面将元数据定义成一个流表。流表的创建方式请参考 新建流表 章节。

  3. 在SQL中直接使用元数据 数据库.表 语句。

    例如: SELECTE * FROM test_database.test_table

编写好一个 SQL 任务后,点击“保存”即可保存任务。任务的启动、停止、运维等请参考 任务运维 章节。