Example 2: Specify List of Column Definitions - Aster Execution Engine

Teradata Aster® Developer Guide

Product
Aster Execution Engine
Release Number
7.00.02
Published
July 2017
Language
English (United States)
Last Update
2018-04-13
dita:mapPath
xnl1494366523182.ditamap
dita:ditavalPath
Generic_no_ie_no_tempfilter.ditaval
dita:id
ffu1489104705746
lifecycle
previous
Product Category
Software

The following code creates an IMDC named myIMDC, specifying the schema with a list of column definitions and specifying 100 MB for each partition. The IMDC columns are named Column0, Column1, and Column2.

import java.util.List;
import java.util.ArrayList;
import com.asterdata.ncluster.sqlmr.RowFunction;
import com.asterdata.ncluster.sqlmr.data.RowEmitter;
import com.asterdata.ncluster.sqlmr.data.RowIterator;
import com.asterdata.ncluster.sqlmr.InMemoryDataCollectionRepository;
import com.asterdata.ncluster.sqlmr.data.InMemoryDataCollection;
import com.asterdata.ncluster.sqlmr.data.SqlType;
import com.asterdata.ncluster.sqlmr.data.ColumnDefinition;
 
...
   public void operateOnSomeRows(RowIterator inputIterator,
                                 outputEmitter)
   {
      ...
      //give a name to the IMDC 
      String myIMDC_Name = new String("myIMDC");
  
      //create a schema for the IMDC with 3 columns
      //1. int
      //2. double
      //3. varchar
      List<ColumnDefinition> myIMDC_Schema =
        new ArrayList<ColumnDefinition>(3);
  
      //a java int
      myIMDC_Schema.add(new ColumnDefinition("Column0", SqlType.integer()));
      //a java double
      myIMDC_Schema.add(new ColumnDefinition("Column1", SqlType.double()));
      //a java String
      myIMDC_Schema.add(new ColumnDefinition("Column2", SqlType.varchar()));
      //Amount of Memory to use
      int memoryInMB = 100;
  
      //create the IMDC
      InMemoryDataCollection myIMDC =
        InMemoryDataCollectionRepository.createInMemoryDataCollection(
          myIMDC_Name,
          myIMDC_Schema,                                                                memoryInMB);
      ...
   }