SQL 任务开发指南

SQL 任务编写

详细 SQL 语法讲解请参考 SQL 开发文档 章节。

DDL 方式

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

  1. CREATE TABLE blog_canal(
  2. ID BIGINT,
  3. UserID BIGINT,
  4. Title STRING,
  5. Abstract STRING,
  6. AllowView INT,
  7. PublishTime BIGINT,
  8. AccessCount INT,
  9. CommentCount INT,
  10. ndc_type_ STRING
  11. ) WITH(
  12. 'connector.type' = 'kafka',
  13. 'connector.topic' = 'Blog_Canal2',
  14. 'connector.properties.bootstrap.servers' = 'xxx',
  15. 'connector.properties.group.id' = 'Blog_Canal',
  16. 'format.type' = 'ndc-dbhub',
  17. 'format.split-update' = 'true',
  18. 'connector.version' = 'universal',
  19. 'connector.startup-mode'='timestamp',
  20. 'connector.specific-timestamp' = '1608602506000'
  21. );
  22. CREATE CATALOG slothTest WITH (
  23. 'hive-site'='hive-site.xml',
  24. 'hdfs-site'='hdfs-site.xml',
  25. 'core-site'='core-site.xml',
  26. 'type' = 'arctic',
  27. 'auth.method' = 'simple',
  28. 'simple.user.name' = 'sloth'
  29. );
  30. insert into
  31. slothTest.testdb.blog
  32. select
  33. ID as id,
  34. UserID as user_id,
  35. Title as title,
  36. Abstract as abstract,
  37. AllowView as allow_view,
  38. PublishTime as publish_time,
  39. AccessCount as access_count,
  40. CommentCount as comment_count,
  41. ndc_type_ as arctic_action_
  42. from
  43. blog_canal;

Meta 方式

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

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

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

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

    例如:

    SELECTE * FROM test_database.test_table

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