Amazon Neptune Graph

2024/08/13 - Amazon Neptune Graph - 5 updated api methods

Changes  Amazon Neptune Analytics provides a new option for customers to load data into a graph using the RDF (Resource Description Framework) NTRIPLES format. When loading NTRIPLES files, use the value `convertToIri` for the `blankNodeHandling` parameter.

CancelImportTask (updated) Link ¶
Changes (response)
{'format': {'NTRIPLES'}}

Deletes the specified import task.

See also: AWS API Documentation

Request Syntax

client.cancel_import_task(
    taskIdentifier='string'
)
type taskIdentifier

string

param taskIdentifier

[REQUIRED]

The unique identifier of the import task.

rtype

dict

returns

Response Syntax

{
    'graphId': 'string',
    'taskId': 'string',
    'source': 'string',
    'format': 'CSV'|'OPEN_CYPHER'|'NTRIPLES',
    'roleArn': 'string',
    'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED'
}

Response Structure

  • (dict) --

    • graphId (string) --

      The unique identifier of the Neptune Analytics graph.

    • taskId (string) --

      The unique identifier of the import task.

    • source (string) --

      A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

    • format (string) --

      Specifies the format of S3 data to be imported. Valid values are CSV , which identifies the Gremlin CSV format or OPENCYPHER , which identies the openCypher load format.

    • roleArn (string) --

      The ARN of the IAM role that will allow access to the data that is to be imported.

    • status (string) --

      Current status of the task. Status is CANCELLING when the import task is cancelled.

CreateGraphUsingImportTask (updated) Link ¶
Changes (request, response)
Request
{'blankNodeHandling': 'convertToIri', 'format': {'NTRIPLES'}}
Response
{'format': {'NTRIPLES'}}

Creates a new Neptune Analytics graph and imports data into it, either from Amazon Simple Storage Service (S3) or from a Neptune database or a Neptune database snapshot.

The data can be loaded from files in S3 that in either the Gremlin CSV format or the openCypher load format.

See also: AWS API Documentation

Request Syntax

client.create_graph_using_import_task(
    graphName='string',
    tags={
        'string': 'string'
    },
    publicConnectivity=True|False,
    kmsKeyIdentifier='string',
    vectorSearchConfiguration={
        'dimension': 123
    },
    replicaCount=123,
    deletionProtection=True|False,
    importOptions={
        'neptune': {
            's3ExportPath': 'string',
            's3ExportKmsKeyId': 'string',
            'preserveDefaultVertexLabels': True|False,
            'preserveEdgeIds': True|False
        }
    },
    maxProvisionedMemory=123,
    minProvisionedMemory=123,
    failOnError=True|False,
    source='string',
    format='CSV'|'OPEN_CYPHER'|'NTRIPLES',
    blankNodeHandling='convertToIri',
    roleArn='string'
)
type graphName

string

param graphName

[REQUIRED]

A name for the new Neptune Analytics graph to be created.

The name must contain from 1 to 63 letters, numbers, or hyphens, and its first character must be a letter. It cannot end with a hyphen or contain two consecutive hyphens.

type tags

dict

param tags

Adds metadata tags to the new graph. These tags can also be used with cost allocation reporting, or used in a Condition statement in an IAM policy.

  • (string) --

    • (string) --

type publicConnectivity

boolean

param publicConnectivity

Specifies whether or not the graph can be reachable over the internet. All access to graphs is IAM authenticated. ( true to enable, or false to disable).

type kmsKeyIdentifier

string

param kmsKeyIdentifier

Specifies a KMS key to use to encrypt data imported into the new graph.

type vectorSearchConfiguration

dict

param vectorSearchConfiguration

Specifies the number of dimensions for vector embeddings that will be loaded into the graph. The value is specified as dimension= value. Max = 65,535

  • dimension (integer) -- [REQUIRED]

    The number of dimensions.

type replicaCount

integer

param replicaCount

The number of replicas in other AZs to provision on the new graph after import. Default = 0, Min = 0, Max = 2.

Warning

Additional charges equivalent to the m-NCUs selected for the graph apply for each replica.

type deletionProtection

boolean

param deletionProtection

Indicates whether or not to enable deletion protection on the graph. The graph can’t be deleted when deletion protection is enabled. ( true or false ).

type importOptions

dict

param importOptions

Contains options for controlling the import process. For example, if the failOnError key is set to false , the import skips problem data and attempts to continue (whereas if set to true , the default, or if omitted, the import operation halts immediately when an error is encountered.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: neptune.

  • neptune (dict) --

    Options for importing data from a Neptune database.

    • s3ExportPath (string) -- [REQUIRED]

      The path to an S3 bucket from which to import data.

    • s3ExportKmsKeyId (string) -- [REQUIRED]

      The KMS key to use to encrypt data in the S3 bucket where the graph data is exported

    • preserveDefaultVertexLabels (boolean) --

      Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false.

    • preserveEdgeIds (boolean) --

      Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId .

type maxProvisionedMemory

integer

param maxProvisionedMemory

The maximum provisioned memory-optimized Neptune Capacity Units (m-NCUs) to use for the graph. Default: 1024, or the approved upper limit for your account.

If both the minimum and maximum values are specified, the max of the min-provisioned-memory and max-provisioned memory is used to create the graph. If neither value is specified 128 m-NCUs are used.

type minProvisionedMemory

integer

param minProvisionedMemory

The minimum provisioned memory-optimized Neptune Capacity Units (m-NCUs) to use for the graph. Default: 128

type failOnError

boolean

param failOnError

If set to true , the task halts when an import error is encountered. If set to false , the task skips the data that caused the error and continues if possible.

type source

string

param source

[REQUIRED]

A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

type format

string

param format

Specifies the format of S3 data to be imported. Valid values are CSV , which identifies the Gremlin CSV format or OPENCYPHER , which identies the openCypher load format.

type blankNodeHandling

string

param blankNodeHandling

The method to handle blank nodes in the dataset. Currently, only convertToIri is supported, meaning blank nodes are converted to unique IRIs at load time. Must be provided when format is ntriples . For more information, see Handling RDF values.

type roleArn

string

param roleArn

[REQUIRED]

The ARN of the IAM role that will allow access to the data that is to be imported.

rtype

dict

returns

Response Syntax

{
    'graphId': 'string',
    'taskId': 'string',
    'source': 'string',
    'format': 'CSV'|'OPEN_CYPHER'|'NTRIPLES',
    'roleArn': 'string',
    'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED',
    'importOptions': {
        'neptune': {
            's3ExportPath': 'string',
            's3ExportKmsKeyId': 'string',
            'preserveDefaultVertexLabels': True|False,
            'preserveEdgeIds': True|False
        }
    }
}

Response Structure

  • (dict) --

    • graphId (string) --

      The unique identifier of the Neptune Analytics graph.

    • taskId (string) --

      The unique identifier of the import task.

    • source (string) --

      A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

    • format (string) --

      Specifies the format of S3 data to be imported. Valid values are CSV , which identifies the Gremlin CSV format, OPENCYPHER , which identifies the openCypher load format, or ntriples , which identifies the RDF n-triples format.

    • roleArn (string) --

      The ARN of the IAM role that will allow access to the data that is to be imported.

    • status (string) --

      The status of the import task.

    • importOptions (dict) --

      Contains options for controlling the import process. For example, if the failOnError key is set to false , the import skips problem data and attempts to continue (whereas if set to true , the default, or if omitted, the import operation halts immediately when an error is encountered.

      Note

      This is a Tagged Union structure. Only one of the following top level keys will be set: neptune. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

      'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
      • neptune (dict) --

        Options for importing data from a Neptune database.

        • s3ExportPath (string) --

          The path to an S3 bucket from which to import data.

        • s3ExportKmsKeyId (string) --

          The KMS key to use to encrypt data in the S3 bucket where the graph data is exported

        • preserveDefaultVertexLabels (boolean) --

          Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false.

        • preserveEdgeIds (boolean) --

          Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId .

GetImportTask (updated) Link ¶
Changes (response)
{'format': {'NTRIPLES'}}

Retrieves a specified import task.

See also: AWS API Documentation

Request Syntax

client.get_import_task(
    taskIdentifier='string'
)
type taskIdentifier

string

param taskIdentifier

[REQUIRED]

The unique identifier of the import task.

rtype

dict

returns

Response Syntax

{
    'graphId': 'string',
    'taskId': 'string',
    'source': 'string',
    'format': 'CSV'|'OPEN_CYPHER'|'NTRIPLES',
    'roleArn': 'string',
    'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED',
    'importOptions': {
        'neptune': {
            's3ExportPath': 'string',
            's3ExportKmsKeyId': 'string',
            'preserveDefaultVertexLabels': True|False,
            'preserveEdgeIds': True|False
        }
    },
    'importTaskDetails': {
        'status': 'string',
        'startTime': datetime(2015, 1, 1),
        'timeElapsedSeconds': 123,
        'progressPercentage': 123,
        'errorCount': 123,
        'errorDetails': 'string',
        'statementCount': 123,
        'dictionaryEntryCount': 123
    },
    'attemptNumber': 123,
    'statusReason': 'string'
}

Response Structure

  • (dict) --

    • graphId (string) --

      The unique identifier of the Neptune Analytics graph.

    • taskId (string) --

      The unique identifier of the import task.

    • source (string) --

      A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot

    • format (string) --

      Specifies the format of S3 data to be imported. Valid values are CSV , which identifies the Gremlin CSV format or OPENCYPHER , which identies the openCypher load format.

    • roleArn (string) --

      The ARN of the IAM role that will allow access to the data that is to be imported.

    • status (string) --

      The status of the import task:

      • INITIALIZING – The necessary resources needed to create the graph are being prepared.

      • ANALYZING_DATA – The data is being analyzed to determine the optimal infrastructure configuration for the new graph.

      • RE_PROVISIONING – The data did not fit into the provisioned graph, so it is being re-provisioned with more capacity.

      • IMPORTING – The data is being loaded.

      • ERROR_ENCOUNTERED – An error has been encountered while trying to create the graph and import the data.

      • ERROR_ENCOUNTERED_ROLLING_BACK – Because of the error that was encountered, the graph is being rolled back and all its resources released.

      • SUCCEEDED – Graph creation and data loading succeeded.

      • FAILED – Graph creation or data loading failed. When the status is FAILED , you can use get-graphs to get more information about the state of the graph.

      • CANCELLING – Because you cancelled the import task, cancellation is in progress.

      • CANCELLED – You have successfully cancelled the import task.

    • importOptions (dict) --

      Contains options for controlling the import process. For example, if the failOnError key is set to false , the import skips problem data and attempts to continue (whereas if set to true , the default, or if omitted, the import operation halts immediately when an error is encountered.

      Note

      This is a Tagged Union structure. Only one of the following top level keys will be set: neptune. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

      'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
      • neptune (dict) --

        Options for importing data from a Neptune database.

        • s3ExportPath (string) --

          The path to an S3 bucket from which to import data.

        • s3ExportKmsKeyId (string) --

          The KMS key to use to encrypt data in the S3 bucket where the graph data is exported

        • preserveDefaultVertexLabels (boolean) --

          Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false.

        • preserveEdgeIds (boolean) --

          Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId .

    • importTaskDetails (dict) --

      Contains details about the specified import task.

      • status (string) --

        Status of the import task.

      • startTime (datetime) --

        Time at which the import task started.

      • timeElapsedSeconds (integer) --

        Seconds elapsed since the import task started.

      • progressPercentage (integer) --

        The percentage progress so far.

      • errorCount (integer) --

        The number of errors encountered so far.

      • errorDetails (string) --

        Details about the errors that have been encountered.

      • statementCount (integer) --

        The number of statements in the import task.

      • dictionaryEntryCount (integer) --

        The number of dictionary entries in the import task.

    • attemptNumber (integer) --

      The number of the current attempt to execute the import task.

    • statusReason (string) --

      The reason that the import task has this status value.

ListImportTasks (updated) Link ¶
Changes (response)
{'tasks': {'format': {'NTRIPLES'}}}

Lists import tasks.

See also: AWS API Documentation

Request Syntax

client.list_import_tasks(
    nextToken='string',
    maxResults=123
)
type nextToken

string

param nextToken

Pagination token used to paginate output.

When this value is provided as input, the service returns results from where the previous response left off. When this value is present in output, it indicates that there are more results to retrieve.

type maxResults

integer

param maxResults

The total number of records to return in the command's output.

If the total number of records available is more than the value specified, nextToken is provided in the command's output. To resume pagination, provide the nextToken output value in the nextToken argument of a subsequent command. Do not use the nextToken response element directly outside of the Amazon CLI.

rtype

dict

returns

Response Syntax

{
    'tasks': [
        {
            'graphId': 'string',
            'taskId': 'string',
            'source': 'string',
            'format': 'CSV'|'OPEN_CYPHER'|'NTRIPLES',
            'roleArn': 'string',
            'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • tasks (list) --

      The requested list of import tasks.

      • (dict) --

        Details about an import task.

        • graphId (string) --

          The unique identifier of the Neptune Analytics graph.

        • taskId (string) --

          The unique identifier of the import task.

        • source (string) --

          A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot

        • format (string) --

          Specifies the format of S3 data to be imported. Valid values are CSV , which identifies the Gremlin CSV format or OPENCYPHER , which identies the openCypher load format.

        • roleArn (string) --

          The ARN of the IAM role that will allow access to the data that is to be imported.

        • status (string) --

          Status of the import task.

    • nextToken (string) --

      Pagination token used to paginate output.

      When this value is provided as input, the service returns results from where the previous response left off. When this value is present in output, it indicates that there are more results to retrieve.

StartImportTask (updated) Link ¶
Changes (request, response)
Request
{'blankNodeHandling': 'convertToIri', 'format': {'NTRIPLES'}}
Response
{'format': {'NTRIPLES'}}

Import data into existing Neptune Analytics graph from Amazon Simple Storage Service (S3). The graph needs to be empty and in the AVAILABLE state.

See also: AWS API Documentation

Request Syntax

client.start_import_task(
    importOptions={
        'neptune': {
            's3ExportPath': 'string',
            's3ExportKmsKeyId': 'string',
            'preserveDefaultVertexLabels': True|False,
            'preserveEdgeIds': True|False
        }
    },
    failOnError=True|False,
    source='string',
    format='CSV'|'OPEN_CYPHER'|'NTRIPLES',
    blankNodeHandling='convertToIri',
    graphIdentifier='string',
    roleArn='string'
)
type importOptions

dict

param importOptions

Options for how to perform an import.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: neptune.

  • neptune (dict) --

    Options for importing data from a Neptune database.

    • s3ExportPath (string) -- [REQUIRED]

      The path to an S3 bucket from which to import data.

    • s3ExportKmsKeyId (string) -- [REQUIRED]

      The KMS key to use to encrypt data in the S3 bucket where the graph data is exported

    • preserveDefaultVertexLabels (boolean) --

      Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false.

    • preserveEdgeIds (boolean) --

      Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId .

type failOnError

boolean

param failOnError

If set to true, the task halts when an import error is encountered. If set to false, the task skips the data that caused the error and continues if possible.

type source

string

param source

[REQUIRED]

A URL identifying the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

type format

string

param format

Specifies the format of Amazon S3 data to be imported. Valid values are CSV, which identifies the Gremlin CSV format or OPENCYPHER, which identies the openCypher load format.

type blankNodeHandling

string

param blankNodeHandling

The method to handle blank nodes in the dataset. Currently, only convertToIri is supported, meaning blank nodes are converted to unique IRIs at load time. Must be provided when format is ntriples . For more information, see Handling RDF values.

type graphIdentifier

string

param graphIdentifier

[REQUIRED]

The unique identifier of the Neptune Analytics graph.

type roleArn

string

param roleArn

[REQUIRED]

The ARN of the IAM role that will allow access to the data that is to be imported.

rtype

dict

returns

Response Syntax

{
    'graphId': 'string',
    'taskId': 'string',
    'source': 'string',
    'format': 'CSV'|'OPEN_CYPHER'|'NTRIPLES',
    'roleArn': 'string',
    'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED',
    'importOptions': {
        'neptune': {
            's3ExportPath': 'string',
            's3ExportKmsKeyId': 'string',
            'preserveDefaultVertexLabels': True|False,
            'preserveEdgeIds': True|False
        }
    }
}

Response Structure

  • (dict) --

    • graphId (string) --

      The unique identifier of the Neptune Analytics graph.

    • taskId (string) --

      The unique identifier of the import task.

    • source (string) --

      A URL identifying the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot.

    • format (string) --

      Specifies the format of Amazon S3 data to be imported. Valid values are CSV, which identifies the Gremlin CSV format or OPENCYPHER, which identies the openCypher load format.

    • roleArn (string) --

      The ARN of the IAM role that will allow access to the data that is to be imported.

    • status (string) --

      The status of the import task.

    • importOptions (dict) --

      Options for how to perform an import.

      Note

      This is a Tagged Union structure. Only one of the following top level keys will be set: neptune. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

      'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
      • neptune (dict) --

        Options for importing data from a Neptune database.

        • s3ExportPath (string) --

          The path to an S3 bucket from which to import data.

        • s3ExportKmsKeyId (string) --

          The KMS key to use to encrypt data in the S3 bucket where the graph data is exported

        • preserveDefaultVertexLabels (boolean) --

          Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false.

        • preserveEdgeIds (boolean) --

          Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId .