CREATE TABLE AS - Amazon Redshift

CREATE TABLE AS

Crea una nueva tabla en función de una consulta. El propietario de esta tabla es el usuario que emite el comando.

La tabla nueva se carga con datos definidos por la consulta en el comando. Las columnas de la tabla tienen nombres y tipos de datos asociados con las columnas de salida de la consulta. El comando CREATE TABLE AS (CTAS) crea una tabla nueva y evalúa la consulta para cargar la tabla nueva.

Sintaxis

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ ( column_name [, ... ] ) ] [ BACKUP { YES | NO } ] [ table_attributes ] AS query where table_attributes are: [ DISTSTYLE { AUTO | EVEN | ALL | KEY } ] [ DISTKEY( distkey_identifier ) ] [ [ COMPOUND | INTERLEAVED ] SORTKEY( column_name [, ...] ) ]

Parámetros

LOCAL

Aunque esta palabra clave opcional se acepta en la instrucción, no tiene efecto en Amazon Redshift.

TEMPORARY | TEMP

Crea una tabla temporal. Una tabla temporal se elimina automáticamente al final de la sesión en la que se creó.

table_name

El nombre de la tabla que se creará.

importante

Si especifica un nombre de tabla que comienza con "#", la tabla se crea como una tabla temporal. Por ejemplo:

create table #newtable (id) as select * from oldtable;

La longitud máxima del nombre de la tabla es de 127 bytes; los nombres más largos se truncan en 127 bytes. Amazon Redshift aplica una cuota del número de tablas por clúster según el tipo de nodo. Puede clasificar el nombre de la tabla con el nombre de la base de datos y del esquema, como se muestra en la siguiente tabla.

create table tickit.public.test (c1) as select * from oldtable;

En este ejemplo, tickit es el nombre de base de datos y public es el nombre de esquema. Si la base de datos o el esquema no existen, la instrucción devuelve un error.

Si se proporciona un nombre de esquema, la tabla nueva se crea en ese esquema (suponiendo que el creador tiene acceso al esquema). El nombre de la tabla debe ser un nombre único para ese esquema. Si no se especifica un esquema, se crea la tabla a través del esquema de la base de datos actual. Si está creando una tabla temporal, no puede especificar un nombre de esquema dado que las tablas temporales existen en un esquema especial.

Pueden existir varias tablas temporales con el mismo nombre y al mismo tiempo en la misma base de datos si se crean en sesiones separadas. Estas tablas se asignan a esquemas diferentes.

column_name

El nombre de una columna en la tabla nueva. Si no se proporcionan nombres de columnas, se toman de los nombres de columnas de salida de la consulta. Se usan nombres de columnas predeterminados para las expresiones. Para obtener más información acerca de los nombres válidos, consulte Nombres e identificadores.

BACKUP { YES | NO }

Una cláusula que especifica si la tabla debe incluirse en instantáneas de clústeres manuales y automáticos. Para las tablas, como las tablas provisionales que no contendrán datos críticos, especifique BACKUP NO para ahorrar tiempo de procesamiento al momento de crear instantáneas y restaurar contenido a partir de ellas y, para reducir espacio de almacenamiento en Amazon Simple Storage Service. El ajuste BACKUP NO no tiene efecto en la replicación automática de datos a otros nodos dentro del clúster, por lo que las tablas con BACKUP NO especificado se restauran en el caso de un error del nodo. El valor predeterminado es BACKUP YES.

DISTSTYLE { AUTO | EVEN | KEY | ALL }

Define el estilo de distribución de los datos para toda la tabla. Amazon Redshift distribuye las filas de una tabla entre los nodos informáticos en función del estilo de distribución especificado en la tabla. El valor predeterminado es DISTSTYLE AUTO.

El estilo de distribución que selecciona para las tablas afecta el rendimiento global de la base de datos. Para obtener más información, consulte Uso de estilos de distribución de datos.

  • AUTO: Amazon Redshift asigna un estilo de distribución óptimo en función de los datos de la tabla. Para ver el estilo de distribución aplicado a una tabla, consulte la tabla de catálogo del sistema PG_CLASS. Para obtener más información, consulte Visualización de los estilos de distribución.

  • EVEN: Los datos de la tabla se distribuyen de manera uniforme en los nodos de un clúster en una distribución de turnos rotativos. Los ID de filas se utilizan para determinar la distribución, y se distribuye casi la misma cantidad de filas a cada nodo. Este es el método de distribución predeterminado.

  • KEY: Los datos se distribuyen por los valores en la columna DISTKEY. Cuando establece las columnas de unión de las tablas de unión como claves de distribución, las filas de combinación de ambas tablas se colocan en los nodos de computación. Cuando se colocan los datos, el optimizador puede realizar combinaciones de manera más eficiente. Si especifica DISTSTYLE KEY, debe asignar una columna DISTKEY.

  • ALL: Una copia de toda la tabla se distribuye a cada nodo. El estilo de distribución garantiza que todas las filas obligatorias para cualquier combinación estén disponibles en todos los nodos, pero multiplica los requisitos de almacenamiento y aumenta el tiempo de carga y mantenimiento de la tabla. La distribución ALL puede mejorar el tiempo de ejecución cuando se usa con determinadas tablas de dimensión en las que la distribución KEY no es adecuada. No obstante, es conveniente analizar las mejoras de rendimiento en relación con los costos de mantenimiento.

DISTKEY (column)

Especifica un nombre de columna o número de posicionamiento para la clave de distribución. Use el nombre especificado en la lista de columnas opcional para la tabla o la lista de selección de la consulta. De manera opcional, use un número de posición, donde la primera columna seleccionada es 1, la segunda es 2, etc. Solo una columna de una tabla puede ser la clave de distribución:

  • Si declara una columna como la columna DISTKEY, DISTSTYLE debe estar configurado en KEY o no estar configurado.

  • Si no declara ninguna columna DISTKEY, puede establecer DISTSTYLE en EVEN.

  • Si no especifica DISTKEY ni DISTSTYLE, CTAS determina el estilo de distribución para la nueva tabla en función del plan de consulta para la cláusula SELECT. Para obtener más información, consulte Herencia de atributos de columna y tabla.

Puede definir la misma columna como la clave de distribución y la clave de ordenación; este enfoque tiende a acelerar las combinaciones cuando la columna en cuestión es una columna de combinación en la consulta.

[COMPOUND | INTERLEAVED] SORTKEY (nombre_de_columna [, ... ])

Especifica una o más claves de ordenación para la tabla. Cuando carga datos en la tabla, los datos se ordenan por las columnas que se designan como claves de ordenación.

Puede especificar el estilo de ordenación COMPOUND o INTERLEAVED. La opción predeterminada es COMPOUND. Para obtener más información, consulte Uso de claves de ordenación.

Puede definir un máximo de 400 columnas COMPOUND SORTKEY u 8 columnas INTERLEAVED SORTKEY por tabla.

Si no especifica SORTKEY, CTAS determina las claves de ordenación para la nueva tabla en función del plan de consulta para la cláusula SELECT. Para obtener más información, consulte Herencia de atributos de columna y tabla.

COMPOUND

Especifica que los datos se ordenan a través de una clave compuesta formada por todas las columnas enumeradas en el orden en que aparecen en la lista. Una clave de ordenación compuesta es útil cuando una consulta analiza filas según el orden de las columnas de ordenación. Los beneficios del rendimiento de ordenación con una clave compuesta se reducen cuando las consultas dependen de columnas de ordenación secundarias. Puede definir una cantidad máxima de 400 columnas COMPOUND SORTKEY por tabla.

INTERLEAVED

Especifica que los datos se ordenan a través de una clave de ordenación intercalada. Se puede especificar una cantidad máxima de ocho columnas para una clave de ordenación intercalada.

Una ordenación intercalada otorga el mismo peso a cada columna o subconjunto de columnas de la clave de ordenación. Por lo tanto, las consultas no dependen del orden que tengan las columnas en la clave de ordenación. Cuando una consulta usa una o más columnas de ordenación secundarias, la ordenación intercalada mejora considerablemente el rendimiento de la consulta. La ordenación intercalada tiene un pequeño costo general para las operaciones de carga y limpieza de datos.

AS query

Se trata de cualquier consulta (instrucción SELECT) que Amazon Redshift admita.