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

# RDS Bulk Output

export const m_runner = "Maia runner";

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={["Snowflake"]} unsupportedWarehouses={["Databricks", "Amazon Redshift"]} componentType="Orchestration" connectionInputs="One" connectionOutputs="Unlimited" />

RDS Bulk Output lets users load the contents of a table (or view) into a table in an Amazon RDS database.

<Note>
  If you're using a Matillion Full SaaS solution, you may need to [allow these IP address ranges](/docs/security/network-access-and-ip-allowlist-requirements#full-saas) from which Full SaaS {m_runner}s will call out to their source systems or to cloud data platforms.
</Note>

<Warning>
  Currently, you may need to manually enter the endpoint.
</Warning>

## Properties

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

{/* <!-- param-start:[rdsType] | warehouses: [snowflake] --> */}

<ResponseField name="RDS Type" type="drop-down" required>
  Select the database type.
</ResponseField>

{/* <!-- param-start:[rdsEndpoint] | warehouses: [snowflake] --> */}

<ResponseField name="RDS Endpoint" type="drop-down" required>
  Your RDS database endpoint. If the IAM role attached to the instance (or the manually entered credentials associated with the current environment) has the permissions granted to query the RDS endpoints, you may select the RDS endpoint from a list. Otherwise, you must enter it manually—it can be found in the RDS console and is a long dotted-name and port number, separated by a colon. To acquire your database endpoint and provide it manually, follow these steps:

  1. Log in to the AWS Console.
  2. In the **Find Services** search bar, search for **RDS**.
  3. In the **Amazon RDS** navigation column on the left side of your screen, click **Databases**.
  4. Select a database.
  5. Locate the endpoint for that database in the **Connectivity & security** section.

  Users must include the port number when manually typing the endpoint.
</ResponseField>

{/* <!-- param-start:[databaseName] | warehouses: [snowflake] --> */}

<ResponseField name="Database Name" type="string" required>
  Provide the name of the database within your RDS instance. In the AWS Console, this is the "DB identifier".
</ResponseField>

{/* <!-- param-start:[username] | warehouses: [snowflake] --> */}

<ResponseField name="Username" type="string" required>
  The RDS connection username.
</ResponseField>

{/* <!-- param-start:[password] | warehouses: [snowflake] --> */}

<ResponseField name="Password" type="drop-down" required>
  Choose the secret definition that represents your credentials for this connector.

  If you have not already saved your credentials for this connector as a secret definition, click **Add secret** to create a secret definition representing these credentials. Read [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions) for details about creating a secret definition.
</ResponseField>

{/* <!-- param-start:[jdbcOptions] | warehouses: [snowflake] --> */}

<ResponseField name="JDBC Options" type="column editor">
  * **Parameter:** A JDBC parameter supported by the database driver. The available parameters are explained in the data model. Manual setup is not usually required, since sensible defaults are assumed.
  * **Value:** A value for the given parameter.
</ResponseField>

{/* <!-- param-start:[database] | warehouses: [snowflake] --> */}

<ResponseField name="Database" type="drop-down" required>
  The Snowflake database. The special value `[Environment Default]` uses the database defined in the environment. Read [Databases, Tables and Views - Overview](https://docs.snowflake.com/en/guides-overview-db) to learn more.
</ResponseField>

{/* <!-- param-start:[schema] | warehouses: [snowflake] --> */}

<ResponseField name="Schema" type="drop-down" required>
  The Snowflake schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database.html) to learn more.
</ResponseField>

{/* <!-- param-start:[sourceTable] | warehouses: [snowflake] --> */}

<ResponseField name="Source Table" type="drop-down" required>
  The table (or view) on your cluster to copy to RDS.
</ResponseField>

{/* <!-- param-start:[targetTable] | warehouses: [snowflake] --> */}

<ResponseField name="Target Table" type="string" required>
  A name for the new table.
</ResponseField>

{/* <!-- param-start:[targetSchema] | warehouses: [snowflake] --> */}

<ResponseField name="Target Schema" type="string" required>
  A schema in the target database. Required if the **RDS Type** is **PostgreSQL** or **SQL Server**.
</ResponseField>

{/* <!-- param-start:[loadColumns] | warehouses: [snowflake] --> */}

<ResponseField name="Load Columns" type="dual listbox">
  Choose the columns to load into RDS. If you leave this parameter empty, all columns will be loaded.
</ResponseField>

{/* <!-- param-start:[tableMaintenance] | warehouses: [snowflake] --> */}

<ResponseField name="Table Maintenance" type="drop-down" required>
  * **None:** Assume the RDS database already has the table defined with the correct structure.
  * **Create if not exists:** Only create the table if it doesn't already exist.
  * **Replace:** Always drop and recreate the table.
</ResponseField>

{/* <!-- param-start:[primaryKey] | warehouses: [snowflake] --> */}

<ResponseField name="Primary Key" type="dual listbox">
  Select one or more columns to be designated as the table's primary key.
</ResponseField>

{/* <!-- param-start:[updateStrategy] | warehouses: [snowflake] --> */}

<ResponseField name="Update Strategy" type="drop-down" required>
  Select how the output will handle replacing rows with matching primary keys. Options are:

  * **Ignore:** Any existing row in the target that matches the primary key is not replaced and the matching row from the source table is not uploaded.
  * **Replace:** Rows in the target table that match the primary key are replaced with the matching rows from the source table.
</ResponseField>

{/* <!-- param-start:[truncateTargetTable] | warehouses: [snowflake] --> */}

<ResponseField name="Truncate Target Table" type="yes/no" required>
  Whether or not to truncate the target table before loading data.
</ResponseField>

{/* <!-- param-start:[onWarnings] | warehouses: [snowflake] --> */}

<ResponseField name="On Warnings" type="drop-down" required>
  Choose whether to continue with the load if an error is raised, or to fail the run.
</ResponseField>

{/* <!-- param-start:[additionalCopyOptions, additionalCopyOptions1] | warehouses: [snowflake] --> */}

<ResponseField name="Additional Copy Options" type="column editor">
  Any additional options that you want to apply to the copy operation. Some of these may conflict with the options the component already sets—in particular, care is taken to escape the data to ensure it loads into the target database even if the data contains row and/or column delimiters, so you should never override the escape or delimiter options.
</ResponseField>

{/* <!-- param-start:[batchSize] | warehouses: [snowflake] --> */}

<ResponseField name="Batch Size" type="integer">
  This is optional, and specifies the number of rows to load to the target between each commit. On a very large export, this may be desirable to keep the size of the Amazon RDS log files from growing very large before the data is committed.
</ResponseField>
