DDL
表相关DDL
Create Table
该命令用来创建一张表,GeaFlow将其识别为外部表并将元数据存储在Catalog中。
Syntax
CREATE TABLE <table name>
(
<column name> <data type>
[ { , <column name> <data type> } ... ]
) WITH (
type = <table type>
[ { , <config key> = <config value> } ... ]
);
Example
Create Table v_person_table (
id bigint,
name string,
age int
) WITH (
type='file',
geaflow.dsl.file.path = 'resource:///data/persons.txt'
);
这个例子创建了一张表v_person_table,包含id, name, age三列,表的存储类型为文件,并通过geaflow.dsl.file.path参数说明需要访问的文件存放在引擎资源的指定目录中。
数据类型
类型 | 说明 |
---|---|
BOOLEAN | 布尔类型 |
SHORT | 短整形类型,范围: -2^15 + 1 ~ 2^15-1 |
INT | 整形类型, 范围: -2^31 + 1 ~ 2^31-1 |
LONG | 长整形类型,范围: -2^63 + 1 ~ 2^63-1 |
DOUBLE | 双精度浮点类型,范围: -2^1024 ~ +2^1024 |
VARCHAR | 字符串类型 |
TIMESTAMP | 时间戳类型 |
参数
创建表的同时,可以使用WITH指定表的参数信息,其中type参数用于指定外部表的存储类型,其他参数为kv类型。
Example
CREATE TABLE person (
id VARCHAR,
name VARCHAR,
age INT
) WITH (
type ='file',
geaflow.dsl.file.path = '/path/to/person/',
geaflow.dsl.column.separator = '|',
geaflow.dsl.window.size = 5000
);
这个例子创建一个文件类型的表,并指定表参数。其中type指定表类型为文件; geaflow.dsl.file.path文件路径;geaflow.dsl.column.separator指定字段分隔列; geaflow.dsl.window.size指定每批次读取文件的行数。
Create View
Syntax
CREATE VIEW <table veiw name>
(
<column name>
[ { , <column name>} ... ]
) AS
<table query>
;
Example
CREATE VIEW console_1 (a, b, c) AS
SELECT id, name, age FROM v_person_table;
图相关DDL
Create Graph
Syntax 一个图至少包含一对点边,点表必须包含一个id字段作为主键,边表必须包含srcId和targetId作为主键,边表还可以有一个时间戳字段标识时间。
CREATE GRAPH <graph name>
(
<graph vertex>
[ { , <graph vertex> } ... ]
, <graph edge>
[ { , <graph edge> } ... ]
) WITH (
storeType = <graph store type>
[ { , <config key> = <config value> } ... ]
);
<graph vertex> ::=
VERTEX <vertex name>
(
<column name> <data type> ID
[ {, <column name> <data type> } ... ]
)
<graph edge> ::=
Edge <edge name>
(
<column name> <data type> SOURCE ID
, <column name> <data type> DESTINATION ID
[ , <column name> <data type> TIMESTAMP ]
[ {, <column name> <data type> } ... ]
)
Example
CREATE GRAPH dy_modern (
Vertex person (
id bigint ID,
name varchar,
age int
),
Vertex software (
id bigint ID,
name varchar,
lang varchar
),
Edge knows (
srcId bigint SOURCE ID,
targetId bigint DESTINATION ID,
weight double
),
Edge created (
srcId bigint SOURCE ID,
targetId bigint DESTINATION ID,
weight double
)
) WITH (
storeType = 'rocksdb',
shardCount = 2
);
这个例子创建了一张包含2个点2个边的图,存储类型为rocksdb, 分片数2个。
图存储
图的存储类型可以在WITH关联的配置列表中使用storeType配置项指定,目前GeaFlow支持Memory, RocksDB作为图存储格式。
图的存储分片数通过shardCount配置项指定,图的存储分片数影响图计算时的并发数,设为更大的值可以利用更多机器并发计算,但所需资源数也将增长。
自定义函数
Create Function
这个命令用来引入一个自定义函数。
Syntax
CREATE FUNCTION <function name> AS <implementation class>
Example
CREATE FUNCTION mysssp AS 'com.antgroup.geaflow.dsl.udf.graph.SingleSourceShortestPath';