:doc:`NeptuneGraph <../../neptune-graph>` / Client / start_import_task

*****************
start_import_task
*****************



.. py:method:: NeptuneGraph.Client.start_import_task(**kwargs)

  

  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 <https://docs.aws.amazon.com/goto/WebAPI/neptune-graph-2023-11-29/StartImportTask>`_  


  **Request Syntax**
  ::

    response = 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'|'PARQUET'|'NTRIPLES',
        parquetType='COLUMNAR',
        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 identifies the openCypher load format.

    

  
  :type parquetType: string
  :param parquetType: 

    The parquet type of the import task.

    

  
  :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 <https://docs.aws.amazon.com/neptune-analytics/latest/userguide/using-rdf-data.html#rdf-handling>`__.

    

  
  :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'|'PARQUET'|'NTRIPLES',
          'parquetType': 'COLUMNAR',
          'roleArn': 'string',
          'status': 'INITIALIZING'|'EXPORTING'|'ANALYZING_DATA'|'IMPORTING'|'REPROVISIONING'|'ROLLING_BACK'|'SUCCEEDED'|'FAILED'|'CANCELLING'|'CANCELLED'|'DELETED',
          '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 identifies the openCypher load format.

        
      

      - **parquetType** *(string) --* 

        The parquet type of the import task.

        
      

      - **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*.

            
      
    
  
  **Exceptions**
  
  *   :py:class:`NeptuneGraph.Client.exceptions.ThrottlingException`

  
  *   :py:class:`NeptuneGraph.Client.exceptions.ValidationException`

  
  *   :py:class:`NeptuneGraph.Client.exceptions.ConflictException`

  
  *   :py:class:`NeptuneGraph.Client.exceptions.InternalServerException`

  
  *   :py:class:`NeptuneGraph.Client.exceptions.ResourceNotFoundException`

  