본문 바로가기

카테고리 없음

TigerGraph Study 10.30(Sat)

Turing Complete ???

 

 

 

 

 

 

 

 

 

 

[tigergraph@ip-172-31-16-56 ssh]$ pwd

/home/tigergraph/tigergraph/data/ssh

[tigergraph@ip-172-31-16-56 ssh]$ cat ssh_config 

Host *

    IdentityFile /home/tigergraph/.ssh/id_rsa

    IdentityFile /home/tigergraph/.ssh/tigergraph_rsa

    Port 22

 

Host m1 ADMIN#1 admin#1 CTRL#1 ctrl#1 DICT#1 dict#1 ETCD#1 etcd#1 EXE_1 exe_1 GPE_1#1 gpe_1#1 GSE_1#1 gse_1#1 GSQL#1 gsql#1 GUI#1 gui#1 IFM#1 ifm#1 KAFKA#1 kafka#1 KAFKACONN#1 kafkaconn#1 KAFKASTRM-LL_1 kafkastrm-ll_1 NGINX#1 nginx#1 RESTPP#1 restpp#1 TS3_1 ts3_1 TS3SERV#1 ts3serv#1 ZK#1 zk#1

    HostName 127.0.0.1

 

#cluster.nodes: m1:127.0.0.1

#admin.servers: m1

#ctrl.servers: m1

#dict.servers: m1

#etcd.servers: m1

#exe.servers: m1

#gpe.servers: m1

#gse.servers: m1

#gsql.servers: m1

#gui.servers: m1

#ifm.servers: m1

#kafka.servers: m1

#kafkaconn.servers: m1

#kafkastrm-ll.servers: m1

#nginx.servers: m1

#restpp.servers: m1

#ts3.servers: m1

#ts3serv.servers: m1

#zk.servers: m1

#log.root: /home/tigergraph/tigergraph/log

#app.root: /home/tigergraph/tigergraph/app/3.1.5

#data.root: /home/tigergraph/tigergraph/data

 

 

Add token function 이것 어디에 정의가 되어 있는가 ? 예시와 함께

Empty 나 NULL 처리

Datetime 처리 확인해 볼 것

 

 

 

 

 

 

 

 

 

cf  > algorithms/Path/astar_shortest_path/tg_astar.gsql

 

 

 

---- Graph j200

Vertex Types: 

  - VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer BOOL) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true"

 

  - VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT, blank_string STRING DEFAULT ""test_default_null"") WITH STATS="OUTDEGREE_BY_EDGETYPE"

 

Edge Types: 

  - UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800")

  - DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000")

 

  - DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000")

                        WITH REVERSE_EDGE="reverse_rev_isamanager"

 

  - DIRECTED EDGE reverse_rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000")

                       WITH REVERSE_EDGE="rev_isamanager"

 

Graphs: 

  - Graph j200(vperson:v, vperson2:v, isafriend:e, isamanager:e, rev_isamanager:e, reverse_rev_isamanager:e)

Jobs: 

  - CREATE LOADING JOB load_job_vperson_csv_1635569453864 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO VERTEX vperson VALUES($0, $1, $2, $3, $4) USING SEPARATOR=",", HEADER="true", EOL="\n";

      LOAD MyDataSource TO VERTEX vperson2 VALUES($0, $1, $2, $3, _) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

  - CREATE LOADING JOB load_job_eisafriend_csv_1635570638771 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO EDGE isafriend VALUES($0, $1, $2) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_4881271012909414268 {

      ADD VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer BOOL) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true";

      ADD UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800");

      ADD DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000");

      ADD DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_3132272144429820581 {

      ADD VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT) WITH STATS="OUTDEGREE_BY_EDGETYPE";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_2205272221080655479 {

      ALTER VERTEX vperson2 ADD ATTRIBUTE (blank_string STRING DEFAULT ""test_default_null"");

    }

 

 

 

 

 

 

 

 

 

 

 

---- Graph j200

Vertex Types: 

  - VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer STRING) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true"

  - VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT, blank_string STRING DEFAULT ""test_default_null"") WITH STATS="OUTDEGREE_BY_EDGETYPE"

Edge Types: 

  - UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800")

  - DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000")

  - DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager"

  - DIRECTED EDGE reverse_rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="rev_isamanager"

Indexes: 

  - name_zgmeo8thub:vperson(name)

  - age_66oe76egejv:vperson(age)

 

Graphs: 

  - Graph j200(vperson:v, vperson2:v, isafriend:e, isamanager:e, rev_isamanager:e, reverse_rev_isamanager:e)

Jobs: 

  - CREATE LOADING JOB load_job_eisafriend_csv_1635570638771 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO EDGE isafriend VALUES($0, $1, $2) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

  - CREATE LOADING JOB load_job_vperson_csv_1635569453864 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO VERTEX vperson VALUES($0, $1, $2, $3, $4) USING SEPARATOR=",", HEADER="true", EOL="\n";

      LOAD MyDataSource TO VERTEX vperson2 VALUES($0, $1, $2, $3, _) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_4881271012909414268 {

      ADD VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer BOOL) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true";

      ADD UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800");

      ADD DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000");

      ADD DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_3132272144429820581 {

      ADD VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT) WITH STATS="OUTDEGREE_BY_EDGETYPE";

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_2205272221080655479 {

      ALTER VERTEX vperson2 ADD ATTRIBUTE (blank_string STRING DEFAULT ""test_default_null"");

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_1018275765975102245 {

      ALTER VERTEX vperson ADD INDEX name_zgmeo8thub ON (name);

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_5592275902841142591 {

      ALTER VERTEX vperson DROP ATTRIBUTE (is_black_consumer);

    }

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_571275913647774313 {

      ALTER VERTEX vperson ADD ATTRIBUTE (is_black_consumer STRING);

    }

 

Queries: 

 

 

 

 

 

 

https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/defining-a-graph-schema

Primary Key

 

 

 

 

Composite Primary Key

 

 

 

SHOW <VERTEX> | <EDGE> | <JOB> | <QUERY> | <GRAPH> [ <name> | <glob> | -r <regex> ]

 

Basic description 

desc x => show (o)

like 검색은 * 

 

 

GSQL > show vertex *

- VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer STRING) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true"

 

- VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT, blank_string STRING DEFAULT ""test_default_null"") WITH STATS="OUTDEGREE_BY_EDGETYPE"

 

GSQL > show edge *

- UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800")

 

- DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000")

 

- DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager"

 

- DIRECTED EDGE reverse_rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="rev_isamanager"

 

GSQL > show edge *manager*

Semantic Check Fails: The edge *manager* doesn't exist!

GSQL > show edge *manager

- DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000")

 

- DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager"

 

- DIRECTED EDGE reverse_rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="rev_isamanager"

 

GSQL > show job

Encountered "<EOF>" at line 1, column 8.

Was expecting one of:

    "*" ...

    <DASH_R_OPT> ...

    "*" ...

    

GSQL > show job *

  - CREATE LOADING JOB load_job_eisafriend_csv_1635570638771 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO EDGE isafriend VALUES($0, $1, $2) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

 

  - CREATE LOADING JOB load_job_vperson_csv_1635569453864 FOR GRAPH j200 {

      DEFINE FILENAME MyDataSource;

      LOAD MyDataSource TO VERTEX vperson VALUES($0, $1, $2, $3, $4) USING SEPARATOR=",", HEADER="true", EOL="\n";

      LOAD MyDataSource TO VERTEX vperson2 VALUES($0, $1, $2, $3, _) USING SEPARATOR=",", HEADER="true", EOL="\n";

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_4881271012909414268 {

      ADD VERTEX vperson(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT DEFAULT "10", is_black_consumer BOOL) WITH STATS="OUTDEGREE_BY_EDGETYPE", PRIMARY_ID_AS_ATTRIBUTE="true";

      ADD UNDIRECTED EDGE isafriend(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "946684800");

      ADD DIRECTED EDGE isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1262304000");

      ADD DIRECTED EDGE rev_isamanager(FROM vperson, TO vperson, sinceymd DATETIME DEFAULT "1293840000") WITH REVERSE_EDGE="reverse_rev_isamanager";

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_3132272144429820581 {

      ADD VERTEX vperson2(PRIMARY_ID personid STRING, name STRING, gender STRING, age INT) WITH STATS="OUTDEGREE_BY_EDGETYPE";

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_2205272221080655479 {

      ALTER VERTEX vperson2 ADD ATTRIBUTE (blank_string STRING DEFAULT ""test_default_null"");

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_1018275765975102245 {

      ALTER VERTEX vperson ADD INDEX name_zgmeo8thub ON (name);

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_5592275902841142591 {

      ALTER VERTEX vperson DROP ATTRIBUTE (is_black_consumer);

    }

 

 

  - CREATE SCHEMA_CHANGE JOB local_schema_change_571275913647774313 {

      ALTER VERTEX vperson ADD ATTRIBUTE (is_black_consumer STRING);

    }

 

 

그래프 생성하기ㅣ 

 

 

CREATE VERTEX User (PRIMARY_ID user_id UINT, name STRING, age UINT, gender STRING, postalCode STRING)

CREATE VERTEX Occupation (PRIMARY_ID occ_id UINT, occ_name STRING)

WITH STATS="outdegree_by_edgetype"

CREATE VERTEX Book (PRIMARY_ID bookcode UINT, title STRING, pub_year UINT)

WITH STATS="none"

CREATE VERTEX Genre (PRIMARY_ID genre_id STRING, genre_name STRING)

CREATE UNDIRECTED EDGE user_occupation (FROM User, TO Occupation)

CREATE UNDIRECTED EDGE book_genre (FROM Book, TO Genre)

CREATE UNDIRECTED EDGE user_book_rating (FROM User, TO Book, rating UINT, date_time UINT)

CREATE UNDIRECTED EDGE friend_of (FROM User, TO User, on_date UINT)

CREATE UNDIRECTED EDGE user_book_read (FROM User, To Book, on_date UINT)

CREATE DIRECTED EDGE sequel_of (FROM Book, TO Book) WITH REVERSE_EDGE="preceded_by"

CREATE GRAPH Book_rating (*)

 

Copied!

 

 

GSQL > select count(*) from vperson-(isafriend)-vperson

[{

  "count": 47,

  "e_type": "isafriend"

}]

GSQL > select count(*) from vperson-(any)-vperson

[

  {

    "count": 47,

    "e_type": "isafriend"

  },

  {

    "count": 0,

    "e_type": "isamanager"

  },

  {

    "count": 0,

    "e_type": "rev_isamanager"

  },

  {

    "count": 0,

    "e_type": "reverse_rev_isamanager"

  }

]

 

 

 

 

WITH STATS

By default, when the loader stores a vertex and its attributes in the graph store, it also stores some statistics about the vertex's outdegree – how many connections it has to other vertices. The optional WITH STATS clause lets the user control how much information is recorded. Recording the information in the graph store will speed up queries which need degree information, but it increases the memory usage. There are two* options. If "outdegree_by_edgetype" is chosen, then each vertex records a list of degree count values, one value for each type of edge in the schema. If "none" is chosen, then no degree statistics are recorded with each vertex. If the WITH STATS clause is not used, the loader acts as if "outdegree_by_edgetype" were selected.

 

 

Example :If outdegree information is recorded, it can be retrieved in a query using the vertex's outdegree() function.

The graph below has two types of edges between persons: phone_call and text.

 

For Bobby, the "outdegree_by_edgetype" option records how many phone calls Bobby made (1) and how many text messages Bobby sent (2). This information can be retrieved using the built-in vertex function outdegree(). To get the outdegree of a specific edge type, provide the edgetype name as a string parameter. To get the total outdegree, omit the parameter.

 

노드별 에지타입별 아웃디그리

outdegree_by_edgetype

Bobby.outdegree()   3      : all

Bobby.outdegree("text")   2

Bobby.outdegree("phone_call")   1