Updated on 2024-05-23 GMT+08:00

Incrementally Importing Data to Graphs (2.1.14)

Function

This API is used to import data to graphs incrementally.

To prevent failures in restoring the imported graph data during system restarting, do not delete the data stored on OBS when the graph is in use.

URI

POST /v1.0/{project_id}/graphs/{graph_id}/action

Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

graph_id

Yes

String

Graph ID

Table 2 Query parameters

Parameter

Mandatory

Type

Description

action_id

Yes

String

Graph action ID

Set this parameter to the enumeration value import-graph, which means the incremental data will be imported to the target graph.

Request Parameters

Table 3 Parameters in the request header

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token.

It is used to obtain the permission to call APIs. For details about how to obtain the token, see Authentication. The value of X-Subject-Token in the response header is the token.

Table 4 Request body parameters

Parameter

Mandatory

Type

Description

edgesetPath

No

String

Edge file directory or name

edgesetFormat

No

String

Format of the edge data set. Currently, only the CSV format is supported.

The CSV format is used by default.

vertexsetPath

No

String

Vertex file directory or name

vertexsetFormat

No

String

Format of the vertex data set. Currently, only the CSV format is supported.

The CSV format is used by default.

schemaPath

No

String

Path for storing the metadata file of the new data.

logDir

No

String

Directory for storing logs of imported graphs. This directory stores the data that fails to be imported during graph creation and detailed error causes.

parallelEdge

No

Object

Repetitive edge processing

This parameter is not available for database edition graphs.

action

No

String

Processing mode of repetitive edges. The value can be allow, ignore, or override. The default value is allow.

  • allow indicates that repetitive edges are allowed.
  • ignore indicates that subsequent repetitive edges are ignored.
  • override indicates that the previous repetitive edges are overwritten.

This parameter is not available for database edition graphs.

ignoreLabel

No

Boolean

Whether to ignore labels on repetitive edges. The value can be true or false. The default value is true.

  • true: Indicates that the repetitive edge definition does not contain the label. That is, the <source vertex, target vertex> indicates an edge, excluding the label information.
  • false: Indicates that the repetitive edge definition contains the label. That is, the <source vertex, target vertex, label> indicates an edge.

This parameter is not available for database edition graphs.

targetProperties

No

Array

List of properties used to determine repetitive edges. If this parameter is specified, ignoreLabel is set to false to define repetitive edges that contain properties in the list specified by this parameter.

(This parameter is mandatory only when action is set to override.)

NOTE:
  • The current version supports only overwriting by property and does not support ignoring by property. In addition, only one property takes effect for each label.
  • Properties of the non-single type are considered unequal.

delimiter

No

String

Field separator in a CSV file. The default value is comma (,). The default element separator in a field of the list/set type is semicolon (;).

trimQuote

No

String

Field quote character in a CSV file. The default value is double quotation marks ("). It is used to enclose a field if the field contains separators or line breaks.

offline

No

Boolean

Whether offline import is selected. The value can be true or false. The default value is false.

  • true: Offline import is selected. The import speed is high, but the graph is locked and cannot be read or written during the import.
  • false: Online import is selected. Compared with offline import, online import is slower. However, the graph can be read (cannot be written) during the import.
  • For details about the value validity of the edgesetPath, vertexsetPath, schemaPath, and logDir character strings, see the OBS Object Name Restrictions.

Response Parameters

Status code: 200

Table 5 Response body parameter

Parameter

Type

Description

errorMessage

String

System prompt.

  • If execution succeeds, this parameter may be left blank.
  • If execution fails, this parameter is used to display the error message.

errorCode

String

System prompt.

  • If execution succeeds, this parameter may be left blank.
  • If execution fails, this parameter is used to display the error code.

jobId

String

Indicates the ID of an asynchronous job.

NOTE:

You can view the job execution status and obtain the return result by querying the job ID. For details, see Job Management APIs.

Example Request

POST http://Endpoint/v1.0/{project_id}/graphs/{graph_id}/action?action_id=import-graph
{
  "edgesetPath": "testbucket/demo_movie/edges/",
  "edgesetFormat": "csv",
  "vertexsetPath": "testbucket/demo_movie/vertices/",
  "vertexsetFormat": "csv",
  "schemaPath": "testbucket/demo_movie/incremental_data_schema.xml",
  "logDir": "testbucket/importlogdir",
  "parallelEdge": { 
           "action":"override",
           "ignoreLabel":true
   },
  "delimiter": ",",
  "trimQuote": "\"",
  "offline": true
}

Example Response

Status code: 200

OK

{
  "jobId" : "b4f2e9a0-0439-4edd-a3ad-199bb523b613"
}

Status code: 400

Bad Request

{
  "errorMessage" : "parameter format error",
  "errorCode" : "GES.8013"
}

Status Code

Status Code

Description

200

Request sent.

400

Request error.

401

Authentication failed.

403

No operation permission.

404

No resources found.

500

Internal service error.

503

Service unavailable.