TigerGraph - 通过 Spark 将数据加载到用户定义的元组
TigerGraph - Loading data to a user defined Tuple through Spark
谁能帮我弄清楚如何将数据加载到在 TigerGraph DB 中创建的元组中?我创建了以下元组,并尝试使用 Spark 从文件加载数据。
图表名称:MyGraph
元组名称:MyTuple
MyTuple 的属性:ID String(50),Datee日期时间
元组 MyTuple 被引用到 MyGraph 的边 (ed_newEdge) 作为边属性。寻求帮助以弄清楚我们如何使用 Spark 将数据加载到 MyGraph 中存在的元组中。
您可以使用 tigergraph jdbc 驱动程序将数据插入元组。你可以找到一个例子 here https://github.com/tigergraph/ecosys/blob/master/tools/etl/tg-jdbc-driver/tg-jdbc-examples/src/main/java/com/tigergraph/jdbc/UpsertQuery.java
按照上面的代码创建连接后,您可以使用下面的代码片段
try (java.sql.Statement stmt = con.createStatement()) {
query = "INSERT INTO edge ed_newEdge(Vertex1, Vertex2) VALUES(MyTuple("1d123","2011-02-03 01:02:03"))";
stmt.addBatch(query);}
或者,您可以在 SPARK 上处理数据并在 Parquet 或 csv 文件上序列化数据。然后您可以创建一个 GSQL 加载作业来读取该文件并将值插入到您的元组中。 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/creating-a-loading-job#loading-a-user-defined-type-udt-attribute
TYPEDEF TUPLE <f1 INT (1), f2 UINT, f3 STRING (10), f4 DOUBLE > myTuple # define a UDT
CREATE VERTEX v_udt (id STRING PRIMARY KEY, att_udt myTuple)
CREATE GRAPH test_graph (v_udt)
CREATE LOADING JOB load_udt FOR GRAPH test_graph {
DEFINE FILENAME f;
LOAD f TO VERTEX v_udt VALUES ([=11=], myTuple(, , , ) );
# is loaded as f1, is loaded as f2, and so on
}
RUN LOADING JOB load_udt USING f="./udt.csv"
现在您可以使用 rest 请求调用上面创建的加载作业 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/running-a-loading-job
谁能帮我弄清楚如何将数据加载到在 TigerGraph DB 中创建的元组中?我创建了以下元组,并尝试使用 Spark 从文件加载数据。
图表名称:MyGraph 元组名称:MyTuple
MyTuple 的属性:ID String(50),Datee日期时间
元组 MyTuple 被引用到 MyGraph 的边 (ed_newEdge) 作为边属性。寻求帮助以弄清楚我们如何使用 Spark 将数据加载到 MyGraph 中存在的元组中。
您可以使用 tigergraph jdbc 驱动程序将数据插入元组。你可以找到一个例子 here https://github.com/tigergraph/ecosys/blob/master/tools/etl/tg-jdbc-driver/tg-jdbc-examples/src/main/java/com/tigergraph/jdbc/UpsertQuery.java
按照上面的代码创建连接后,您可以使用下面的代码片段
try (java.sql.Statement stmt = con.createStatement()) {
query = "INSERT INTO edge ed_newEdge(Vertex1, Vertex2) VALUES(MyTuple("1d123","2011-02-03 01:02:03"))";
stmt.addBatch(query);}
或者,您可以在 SPARK 上处理数据并在 Parquet 或 csv 文件上序列化数据。然后您可以创建一个 GSQL 加载作业来读取该文件并将值插入到您的元组中。 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/creating-a-loading-job#loading-a-user-defined-type-udt-attribute
TYPEDEF TUPLE <f1 INT (1), f2 UINT, f3 STRING (10), f4 DOUBLE > myTuple # define a UDT
CREATE VERTEX v_udt (id STRING PRIMARY KEY, att_udt myTuple)
CREATE GRAPH test_graph (v_udt)
CREATE LOADING JOB load_udt FOR GRAPH test_graph {
DEFINE FILENAME f;
LOAD f TO VERTEX v_udt VALUES ([=11=], myTuple(, , , ) );
# is loaded as f1, is loaded as f2, and so on
}
RUN LOADING JOB load_udt USING f="./udt.csv"
现在您可以使用 rest 请求调用上面创建的加载作业 https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/running-a-loading-job