# DataPrepConfigurationProperty

Configuration for data preparation operations, defining the complete pipeline from source tables through transformations to destination tables.

- Source: Generated code
- Type last changed: v2.224.0 · 13 Nov 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_quicksight as quicksight } from 'aws-cdk-lib';
const dataPrepConfigurationProperty: quicksight.CfnDataSet.DataPrepConfigurationProperty = {
  destinationTableMap: {
    destinationTableMapKey: {
      alias: 'alias',
      source: {
        transformOperationId: 'transformOperationId',
      },
    },
  },
  sourceTableMap: {
    sourceTableMapKey: {
      dataSet: {
        dataSetArn: 'dataSetArn',
        inputColumns: [{
          name: 'name',
          type: 'type',

          // the properties below are optional
          id: 'id',
          subType: 'subType',
        }],
      },
      physicalTableId: 'physicalTableId',
    },
  },
  transformStepMap: {
    transformStepMapKey: {
      aggregateStep: {
        aggregations: [{
          aggregationFunction: {
            listAggregation: {
              distinct: false,
              separator: 'separator',

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
            percentileAggregation: {
              percentileValue: 123,

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
            simpleAggregation: {
              functionType: 'functionType',

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
          },
          newColumnId: 'newColumnId',
          newColumnName: 'newColumnName',
        }],
        alias: 'alias',
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },

        // the properties below are optional
        groupByColumnNames: ['groupByColumnNames'],
      },
      appendStep: {
        alias: 'alias',
        appendedColumns: [{
          columnName: 'columnName',
          newColumnId: 'newColumnId',
        }],

        // the properties below are optional
        firstSource: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
        secondSource: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      castColumnTypesStep: {
        alias: 'alias',
        castColumnTypeOperations: [{
          columnName: 'columnName',
          newColumnType: 'newColumnType',

          // the properties below are optional
          format: 'format',
          subType: 'subType',
        }],
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      createColumnsStep: {
        columns: [{
          columnId: 'columnId',
          columnName: 'columnName',
          expression: 'expression',
        }],

        // the properties below are optional
        alias: 'alias',
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      filtersStep: {
        alias: 'alias',
        filterOperations: [{
          conditionExpression: 'conditionExpression',
          dateFilterCondition: {
            columnName: 'columnName',
            comparisonFilterCondition: {
              operator: 'operator',

              // the properties below are optional
              value: {
                staticValue: 'staticValue',
              },
            },
            rangeFilterCondition: {
              includeMaximum: false,
              includeMinimum: false,
              rangeMaximum: {
                staticValue: 'staticValue',
              },
              rangeMinimum: {
                staticValue: 'staticValue',
              },
            },
          },
          numericFilterCondition: {
            columnName: 'columnName',
            comparisonFilterCondition: {
              operator: 'operator',

              // the properties below are optional
              value: {
                staticValue: 123,
              },
            },
            rangeFilterCondition: {
              includeMaximum: false,
              includeMinimum: false,
              rangeMaximum: {
                staticValue: 123,
              },
              rangeMinimum: {
                staticValue: 123,
              },
            },
          },
          stringFilterCondition: {
            columnName: 'columnName',
            comparisonFilterCondition: {
              operator: 'operator',

              // the properties below are optional
              value: {
                staticValue: 'staticValue',
              },
            },
            listFilterCondition: {
              operator: 'operator',

              // the properties below are optional
              values: {
                staticValues: ['staticValues'],
              },
            },
          },
        }],
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      importTableStep: {
        alias: 'alias',
        source: {
          sourceTableId: 'sourceTableId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      joinStep: {
        alias: 'alias',
        leftOperand: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
        onClause: 'onClause',
        rightOperand: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
        type: 'type',

        // the properties below are optional
        leftOperandProperties: {
          outputColumnNameOverrides: [{
            outputColumnName: 'outputColumnName',

            // the properties below are optional
            sourceColumnName: 'sourceColumnName',
          }],
        },
        rightOperandProperties: {
          outputColumnNameOverrides: [{
            outputColumnName: 'outputColumnName',

            // the properties below are optional
            sourceColumnName: 'sourceColumnName',
          }],
        },
      },
      pivotStep: {
        alias: 'alias',
        pivotConfiguration: {
          pivotedLabels: [{
            labelName: 'labelName',
            newColumnId: 'newColumnId',
            newColumnName: 'newColumnName',
          }],

          // the properties below are optional
          labelColumnName: 'labelColumnName',
        },
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
        valueColumnConfiguration: {
          aggregationFunction: {
            listAggregation: {
              distinct: false,
              separator: 'separator',

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
            percentileAggregation: {
              percentileValue: 123,

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
            simpleAggregation: {
              functionType: 'functionType',

              // the properties below are optional
              inputColumnName: 'inputColumnName',
            },
          },
        },

        // the properties below are optional
        groupByColumnNames: ['groupByColumnNames'],
      },
      projectStep: {
        alias: 'alias',
        projectedColumns: ['projectedColumns'],
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      renameColumnsStep: {
        alias: 'alias',
        renameColumnOperations: [{
          columnName: 'columnName',
          newColumnName: 'newColumnName',
        }],
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
      },
      unpivotStep: {
        alias: 'alias',
        columnsToUnpivot: [{
          columnName: 'columnName',
          newValue: 'newValue',
        }],
        source: {
          transformOperationId: 'transformOperationId',

          // the properties below are optional
          columnIdMappings: [{
            sourceColumnId: 'sourceColumnId',
            targetColumnId: 'targetColumnId',
          }],
        },
        unpivotedLabelColumnId: 'unpivotedLabelColumnId',
        unpivotedLabelColumnName: 'unpivotedLabelColumnName',
        unpivotedValueColumnId: 'unpivotedValueColumnId',
        unpivotedValueColumnName: 'unpivotedValueColumnName',
      },
    },
  },
};
```

## Properties

- `destinationTableMap`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | { [key: string]: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDataSet.DestinationTableProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_quicksight.CfnDataSet.DestinationTableProperty.html) } (required) — A map of destination tables that receive the final prepared data.

- `sourceTableMap`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | { [key: string]: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDataSet.SourceTableProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_quicksight.CfnDataSet.SourceTableProperty.html) } (required) — A map of source tables that provide information about underlying sources.

- `transformStepMap`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | { [key: string]: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDataSet.TransformStepProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_quicksight.CfnDataSet.TransformStepProperty.html) } (required) — A map of transformation steps that process the data.
