该命令用来创建一张表,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指定每批次读取文件的行数。
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;
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配置项指定,图的存储分片数影响图计算时的并发数,设为更大的值可以利用更多机器并发计算,但所需资源数也将增长。
这个命令用来引入一个自定义函数。
Syntax
CREATE FUNCTION <function name> AS <implementation class>
Example
CREATE FUNCTION mysssp AS 'com.antgroup.geaflow.dsl.udf.graph.SingleSourceShortestPath';