> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Partition

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

<ComponentMetadata warehouses={["Amazon Redshift"]} unsupportedWarehouses={["Snowflake", "Databricks", "BigQuery"]} componentType="Orchestration" connectionInputs="One" connectionOutputs="Unlimited" />

Add Partition is an orchestration component that lets users define the Amazon S3 directory structure for partitioned external table data. This works by attributing values to each partition on the table. On Amazon S3, a single folder is created for each partition value and is named according to the corresponding partition key and value.

For example, the partition value for the key `Salesdate` might be `2016-01-17`. A directory would then be created on S3 named `Salesdate=2016-01-17` containing this partition's data.

<Note>
  This component only adds physical partitions on Amazon S3.
</Note>

The table itself must already have partitions defined in the [Create External Table](/docs/components/create-external-table) component.

***

## Properties

<ResponseField name="Name" type="string" required>
  A human-readable name for the component.
</ResponseField>

{/* <!-- param-start:[externalSchema] | warehouses: [redshift] --> */}

<ResponseField name="External Schema" type="drop-down" required>
  Select an external schema that references a database in an external data catalog. For more information, read [Create external schema](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html).
</ResponseField>

{/* <!-- param-start:[externalTable] | warehouses: [redshift] --> */}

<ResponseField name="External Table" type="drop-down" required>
  The external table to add partitions to.

  This should be an external table that already has partitions defined through the Create External Table component.
</ResponseField>

{/* <!-- param-start:[partitionValues] | warehouses: [redshift] --> */}

<ResponseField name="Partition Values" type="column editor" required>
  Specify values for each partition.

  To use [grid variables](/docs/guides/grid-variables), select the **Use Grid Variable** checkbox at the bottom of the **Partition Values** dialog.
</ResponseField>

{/* <!-- param-start:[location] | warehouses: [redshift] --> */}

<ResponseField name="Location" type="string" required>
  The URL of the Amazon S3 bucket to load the partition data into.
</ResponseField>

{/* <!-- param-start:[skipExisting] | warehouses: [redshift] --> */}

<ResponseField name="Skip Existing" type="boolean" required>
  When **Yes**, indicates that if the specified partition already exists, there will be no changes for the matching partition.
</ResponseField>
