:doc:`TimestreamWrite <../../timestream-write>` / Client / create_batch_load_task

**********************
create_batch_load_task
**********************



.. py:method:: TimestreamWrite.Client.create_batch_load_task(**kwargs)

  

  Creates a new Timestream batch load task. A batch load task processes data from a CSV source in an S3 location and writes to a Timestream table. A mapping from source to target is defined in a batch load task. Errors and events are written to a report at an S3 location. For the report, if the KMS key is not specified, the report will be encrypted with an S3 managed key when ``SSE_S3`` is the option. Otherwise an error is thrown. For more information, see `Amazon Web Services managed keys <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk>`__. `Service quotas apply <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html>`__. For details, see `code sample <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.create-batch-load.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/timestream-write-2018-11-01/CreateBatchLoadTask>`_  


  **Request Syntax**
  ::

    response = client.create_batch_load_task(
        ClientToken='string',
        DataModelConfiguration={
            'DataModel': {
                'TimeColumn': 'string',
                'TimeUnit': 'MILLISECONDS'|'SECONDS'|'MICROSECONDS'|'NANOSECONDS',
                'DimensionMappings': [
                    {
                        'SourceColumn': 'string',
                        'DestinationColumn': 'string'
                    },
                ],
                'MultiMeasureMappings': {
                    'TargetMultiMeasureName': 'string',
                    'MultiMeasureAttributeMappings': [
                        {
                            'SourceColumn': 'string',
                            'TargetMultiMeasureAttributeName': 'string',
                            'MeasureValueType': 'DOUBLE'|'BIGINT'|'BOOLEAN'|'VARCHAR'|'TIMESTAMP'
                        },
                    ]
                },
                'MixedMeasureMappings': [
                    {
                        'MeasureName': 'string',
                        'SourceColumn': 'string',
                        'TargetMeasureName': 'string',
                        'MeasureValueType': 'DOUBLE'|'BIGINT'|'VARCHAR'|'BOOLEAN'|'TIMESTAMP'|'MULTI',
                        'MultiMeasureAttributeMappings': [
                            {
                                'SourceColumn': 'string',
                                'TargetMultiMeasureAttributeName': 'string',
                                'MeasureValueType': 'DOUBLE'|'BIGINT'|'BOOLEAN'|'VARCHAR'|'TIMESTAMP'
                            },
                        ]
                    },
                ],
                'MeasureNameColumn': 'string'
            },
            'DataModelS3Configuration': {
                'BucketName': 'string',
                'ObjectKey': 'string'
            }
        },
        DataSourceConfiguration={
            'DataSourceS3Configuration': {
                'BucketName': 'string',
                'ObjectKeyPrefix': 'string'
            },
            'CsvConfiguration': {
                'ColumnSeparator': 'string',
                'EscapeChar': 'string',
                'QuoteChar': 'string',
                'NullValue': 'string',
                'TrimWhiteSpace': True|False
            },
            'DataFormat': 'CSV'
        },
        ReportConfiguration={
            'ReportS3Configuration': {
                'BucketName': 'string',
                'ObjectKeyPrefix': 'string',
                'EncryptionOption': 'SSE_S3'|'SSE_KMS',
                'KmsKeyId': 'string'
            }
        },
        TargetDatabaseName='string',
        TargetTableName='string',
        RecordVersion=123
    )
    
  :type ClientToken: string
  :param ClientToken: This field is autopopulated if not provided.

  
  :type DataModelConfiguration: dict
  :param DataModelConfiguration: 

  
    - **DataModel** *(dict) --* 

    
      - **TimeColumn** *(string) --* 

        Source column to be mapped to time.

        

      
      - **TimeUnit** *(string) --* 

        The granularity of the timestamp unit. It indicates if the time value is in seconds, milliseconds, nanoseconds, or other supported values. Default is ``MILLISECONDS``.

        

      
      - **DimensionMappings** *(list) --* **[REQUIRED]** 

        Source to target mappings for dimensions.

        

      
        - *(dict) --* 

        
          - **SourceColumn** *(string) --* 

          
          - **DestinationColumn** *(string) --* 

          
        
    
      - **MultiMeasureMappings** *(dict) --* 

        Source to target mappings for multi-measure records.

        

      
        - **TargetMultiMeasureName** *(string) --* 

        
        - **MultiMeasureAttributeMappings** *(list) --* **[REQUIRED]** 

        
          - *(dict) --* 

          
            - **SourceColumn** *(string) --* **[REQUIRED]** 

            
            - **TargetMultiMeasureAttributeName** *(string) --* 

            
            - **MeasureValueType** *(string) --* 

            
          
      
      
      - **MixedMeasureMappings** *(list) --* 

        Source to target mappings for measures.

        

      
        - *(dict) --* 

        
          - **MeasureName** *(string) --* 

          
          - **SourceColumn** *(string) --* 

          
          - **TargetMeasureName** *(string) --* 

          
          - **MeasureValueType** *(string) --* **[REQUIRED]** 

          
          - **MultiMeasureAttributeMappings** *(list) --* 

          
            - *(dict) --* 

            
              - **SourceColumn** *(string) --* **[REQUIRED]** 

              
              - **TargetMultiMeasureAttributeName** *(string) --* 

              
              - **MeasureValueType** *(string) --* 

              
            
        
        
    
      - **MeasureNameColumn** *(string) --* 

      
    
    - **DataModelS3Configuration** *(dict) --* 

    
      - **BucketName** *(string) --* 

      
      - **ObjectKey** *(string) --* 

      
    
  
  :type DataSourceConfiguration: dict
  :param DataSourceConfiguration: **[REQUIRED]** 

    Defines configuration details about the data source for a batch load task.

    

  
    - **DataSourceS3Configuration** *(dict) --* **[REQUIRED]** 

      Configuration of an S3 location for a file which contains data to load.

      

    
      - **BucketName** *(string) --* **[REQUIRED]** 

        The bucket name of the customer S3 bucket.

        

      
      - **ObjectKeyPrefix** *(string) --* 

      
    
    - **CsvConfiguration** *(dict) --* 

      A delimited data format where the column separator can be a comma and the record separator is a newline character.

      

    
      - **ColumnSeparator** *(string) --* 

        Column separator can be one of comma (','), pipe ('|), semicolon (';'), tab('/t'), or blank space (' ').

        

      
      - **EscapeChar** *(string) --* 

        Escape character can be one of

        

      
      - **QuoteChar** *(string) --* 

        Can be single quote (') or double quote (").

        

      
      - **NullValue** *(string) --* 

        Can be blank space (' ').

        

      
      - **TrimWhiteSpace** *(boolean) --* 

        Specifies to trim leading and trailing white space.

        

      
    
    - **DataFormat** *(string) --* **[REQUIRED]** 

      This is currently CSV.

      

    
  
  :type ReportConfiguration: dict
  :param ReportConfiguration: **[REQUIRED]** 

    Report configuration for a batch load task. This contains details about where error reports are stored.

    

  
    - **ReportS3Configuration** *(dict) --* 

      Configuration of an S3 location to write error reports and events for a batch load.

      

    
      - **BucketName** *(string) --* **[REQUIRED]** 

      
      - **ObjectKeyPrefix** *(string) --* 

      
      - **EncryptionOption** *(string) --* 

      
      - **KmsKeyId** *(string) --* 

      
    
  
  :type TargetDatabaseName: string
  :param TargetDatabaseName: **[REQUIRED]** 

    Target Timestream database for a batch load task.

    

  
  :type TargetTableName: string
  :param TargetTableName: **[REQUIRED]** 

    Target Timestream table for a batch load task.

    

  
  :type RecordVersion: integer
  :param RecordVersion: 

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'TaskId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **TaskId** *(string) --* 

        The ID of the batch load task.

        
  
  **Exceptions**
  
  *   :py:class:`TimestreamWrite.Client.exceptions.InternalServerException`

  
  *   :py:class:`TimestreamWrite.Client.exceptions.ThrottlingException`

  
  *   :py:class:`TimestreamWrite.Client.exceptions.AccessDeniedException`

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

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

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

  
  *   :py:class:`TimestreamWrite.Client.exceptions.ServiceQuotaExceededException`

  
  *   :py:class:`TimestreamWrite.Client.exceptions.InvalidEndpointException`

  