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';