融合DSL概述
融合DSL是GeaFlow提供的图表一体的数据分析语言,支持标准SQL+ISO/GQL进行图表分析.通过融合DSL可以对表数据做关系运算处理,也可以对图数据做图匹配和图算法计算,同时也支持同时图表数据的联合处理.
融合DSL使用案例
- 通过SQL处理GQL结果
SELECT
a.id,
b.id,
AVG(e.amt),
MAX(e.amt)
FROM (
MATCH (a) -[e:knows]->(b:person where b.id != 1)
RETURN a, e, b
)
Group By a.id, b.id
Having AVG(e.amt) > 10
GQL Match返回的Path可以通过SQL做进一步分析处理.
- 通过SQL触发GQL图查询
SELECT *
FROM (
WITH p AS (
SELECT * FROM (VALUES(1, 'r0', 0.4), (4, 'r1', 0.5)) AS t(id, name, weight)
)
MATCH (a:person where id = p.id) -[e where weight > p.weight]->(b)
RETURN p.name as name, a.id as a_id, e.weight as weight, b.id as b_id
)
可以给GQL定义一个参数表,参数表的数据逐条触发GQL查询.GQL将分别返回每个参数对应的计算结果.
Maven依赖
- 开发UDF/UDAF/UDTF/UDGA需要添加以下依赖:
<dependency>
<groupId>com.antgroup.tugraph</groupId>
<artifactId>geaflow-dsl-common</artifactId>
<version>0.1</version>
</dependency>
- 开发自定义Connector需添加以下依赖:
<dependency>
<groupId>com.antgroup.tugraph</groupId>
<artifactId>geaflow-dsl-connector-api</artifactId>
<version>0.1</version>
</dependency>
DSL语法文档
- DSL语法
- DDL
- DML
- DQL
- USE
- 内置函数
- 数学运算
- 逻辑运算
- 字符串函数
- 日期函数
- 条件函数
- 聚合函数
- 表处理函数
- 用户自定义函数
- UDF
- UDTF
- UDAF
- UDGA
- Connector
- Hive Connector
- File Connector
- Kafka Connector
- Pulsar Connector
- 用户自定义Connector