CREAR TABLA en Databricks: Una guía completa para construir y gestionar tablas
Descubre cómo crear tablas en Databricks utilizando el comando CREAR TABLA. Aprende distintos métodos para distintos escenarios, incluyendo cómo crear una tabla a partir de datos existentes y cómo CREAR TABLA como SELECT.
Las tablas Databricks son un componente básico de la plataforma Databricks Lakehouse, diseñada para gestionar el almacenamiento y procesamiento de datos a gran escala. Estas tablas permiten la colaboración entre equipos unificando datos estructurados y no estructurados, al tiempo que soportan cargas de trabajo analíticas.
En este artículo, te guiaré a través de las distintas técnicas para crear tablas en Databricks utilizando el comando CREATE TABLE con diversas variaciones de sintaxis para adaptarse a distintos casos de uso. También ofreceré consejos sobre las mejores prácticas a la hora de crear y gestionar tablas en Databricks para conseguir eficacia y fiabilidad.
Para empezar, te recomiendo encarecidamente que consultes el sitio web de DataCamp Cómo aprender Databricks: Guía para principiantes de la Plataforma Unificada de Datos entrada de blog para ayudarte a comprender las características y aplicaciones básicas de Databricks y proporcionarte un camino estructurado para iniciar tu aprendizaje. También te recomiendo que sigas nuestro curso de Introducción a Databricks. Aunque tengas experiencia en SQL, verás que las cosas pueden parecer diferentes en la plataforma Databricks Lakehouse. Los ejercicios interactivos de nuestro curso te guiarán a través de las consultas SQL, así como de las funciones de la plataforma y las conexiones con sistemas externos.
Introducción a las tablas Databricks
Para empezar, debemos decir que las tablas Databricks son conjuntos de datos estructurados que facilitan la organización y el acceso a los datos dentro del entorno Databricks Lakehouse. Hay dos tipos:
Mesas gestionadas: Estas tablas están totalmente controladas por Databricks, que gestiona tanto el almacenamiento como los metadatos. Cuando se crea una tabla gestionada, Databricks se encarga de los archivos de datos subyacentes, y si se elimina la tabla, también se eliminan los datos correspondientes.
Tablas externas: Las tablas externas hacen referencia a datos que residen fuera de Databricks, normalmente en sistemas de almacenamiento en la nube como AWS S3 o Azure Blob Storage. Aunque Databricks gestiona los metadatos de estas tablas, los datos reales permanecen intactos aunque se elimine la tabla. También se conocen como tablas no gestionadas.
Las tablas en Databricks suelen estar por defecto en Delta Lake debido a sus características y optimizaciones avanzadas. Delta Lake proporciona transacciones ACID,escalabilidad,mejoras de rendimiento como optimizaciones como el almacenamiento en caché y la indexación, yprocesamiento unificado de datos por lotes y en flujo.
Como nota, las primeras versiones de Azure Databricks utilizaban las tablas heredadas de "formato Hive", que las modernas tablas Delta han sustituido. En general, las tablas Delta modernas superan a las tablas Hive heredadas en fiabilidad y rendimiento, lo que las convierte en la elección por defecto para los flujos de trabajo de Databricks.
He aquí un resumen que creo que puede ayudarte a ver la diferencia entre ambos:
Función
Tabla de formatos de colmena
Mesa Delta
Formato de los datos
Apache Hive (CSV, Parquet, ORC, etc.)
Lago Delta (basado en Parquet con metadatos)
Transacciones
Sin soporte ACID (consistencia eventual)
Transacciones ACID completas
Gestión de esquemas
Aplicación limitada
Aplicación estricta del esquema
Optimización del rendimiento
Requiere ajuste manual
Optimizaciones integradas (caché, compactación)
Viaje en el tiempo
No hay soporte integrado para consultas históricas
Admite el viaje en el tiempo para consultar versiones anteriores de los datos
Concurrencia
Propenso a conflictos durante las actualizaciones o eliminaciones
Gestiona eficazmente las operaciones simultáneas
Variaciones de la sintaxis de CREAR TABLA
El comando CREATE TABLE de Databricks admite múltiples variaciones para adaptarse a distintos casos. Cada variación tiene su propósito, con opciones específicas como localización de archivos, clonación y gestión de metadatos . Si necesitas refrescar tus conocimientos sobre Databricks SQL, te recomiendo que leas nuestro tutorial Databricks SQL para aprender, entre otras cosas, a utilizar un Cuaderno en un almacén Databricks SQL.
A continuación encontrarás los principales estilos sintácticos con ejemplos y explicaciones.
CREAR TABLA [USANDO]
Esta sintaxis crea una tabla nueva con un esquema y un formato de datos especificados. La siguiente consulta crea una tabla llamada sales_data leyendo datos de archivos Parquet almacenados en una ubicación específica.
-- Create a table from files in a specific formatCREATETABLE sales_data
USING PARQUET
LOCATION '/mnt/data/sales';Con la tecnología de
CREAR TABLA (formato Colmena)
Esta sintaxis heredada es similar al comando estándar SQL CREATE TABLE, que se utiliza al definir una tabla con metadatos gestionados por Databricks sin necesidad de hacer referencia a archivos externos. La consulta siguiente crea una tabla de estilo Colmena llamada hive_table con un esquema predefinido y propiedades de metadatos adicionales.
-- Hive-style table creation with schema definitionCREATETABLE hive_table (
id INT,
name STRING
)COMMENT'Hive format example'
TBLPROPERTIES ('created_by'='databricks');Con la tecnología de
En la consulta anterior, la cláusula COMMENT añade metadatos descriptivos, mientras que TBLPROPERTIES almacena propiedades personalizadas sobre la tabla.
CREAR TABLA COMO
Este comando crea una nueva tabla utilizando el esquema y las propiedades de una tabla existente. Debes utilizar esta sintaxis cuando quieras replicar la estructura de una tabla existente sin copiar sus datos. Esto es útil a efectos de prueba o desarrollo.
-- Create a table with the same schema as another tableCREATETABLE new_table LIKE existing_table;Con la tecnología de
CREAR TABLA CLON
Esta sintaxis te permite crear una tabla nueva clonando una tabla Delta Lake existente, ya sea como clon profundo o superficial. Por tanto, debes utilizar la sintaxis CREATE TABLE CLONE cuando necesites una copia independiente de los datos y metadatos de una tabla (clon profundo) o sólo los metadatos haciendo referencia a los datos originales (clon superficial). Piensa en esto para versionar o crear copias de seguridad.
El siguiente ejemplo muestra las consultas para crear tablas de clonación profunda y clonación superficial en Databricks.
-- Deep clone by defaultCREATETABLE cloned_table CLONE original_table;-- Shallow cloneCREATETABLE shallow_clone_table SHALLOW CLONE original_table;Con la tecnología de
CREAR O SUSTITUIR TABLA
Este comando único y combinado sustituye una tabla existente por una nueva, manteniendo el mismo nombre de tabla, como una sola operación. Debes utilizar esta sintaxis cuando quieras sobrescribir completamente una tabla existente manteniendo su nombre. Esto es especialmente útil para actualizar la estructura o los datos de una tabla sin necesidad de eliminarla primero.
El ejemplo de consulta que aparece a continuación crea o sustituye la tabla sales por un nuevo esquema.
-- Create or replace a sales table with a new schemaCREATEORREPLACETABLE sales (
sale_id INT,
amount FLOAT)USING DELTA
LOCATION '/mnt/delta/sales';Con la tecnología de
Hay otras cláusulas relevantes que puedes utilizar con la sintaxis CREATE TABLE en Databricks para gestionar tus tablas según requisitos específicos. A continuación se resume el uso de cada una de estas cláusulas. Ya he utilizado sólo algunos, pero no todos, como ejemplos.
IF NOT EXISTS: Evita errores omitiendo la creación de la tabla si ya existe.
USING: Especifica el formato del archivo (por ejemplo, Delta, Parquet, CSV).
EXTERNAL: Declara una tabla en la que los datos residen fuera del almacenamiento gestionado de Databricks.
PARTITIONED BY: Define particiones para optimizar grandes conjuntos de datos.
LOCATION: Señala el directorio que contiene los datos de la tabla.
TBLPROPERTIES: Añade metadatos para configuraciones y optimizaciones de tablas personalizadas.
Demostraciones paso a paso
En esta sección, te mostraré distintas formas de crear y gestionar tablas en Databricks, con ejemplos concisos y explicaciones de las cláusulas clave. Te recomiendo que consultes nuestro Tutorial Databricks: 7 conceptos imprescindibles para cualquier especialista en datos tutorial para aprender a ejecutar comandos SQL en la plataforma Databricks.
Cómo crear una tabla vacía
Para crear una tabla Delta vacía, define el esquema de la tabla con los nombres de las columnas y los tipos de datos. Utiliza la cláusula USING DELTA para definir el formato de la tabla y COMMENT para añadir metadatos descriptivos.
Esta consulta crea una tabla Delta vacía llamada employees con un esquema predefinido, que incluye columnas para id, name, department y hire_date.
-- Create an empty Delta table with a defined schemaCREATETABLE employees (
id BIGINT,
name STRING,
department STRING,
hire_date DATE)USING DELTA
COMMENT'Table to store employee information';Con la tecnología de
Cómo crear una tabla a partir de datos existentes
Para crear una tabla a partir de datos existentes, vincúlala a archivos de datos externos en formatos como CSV, Parquet o JSON. Puedes utilizar la cláusula LOCATION para vincular la tabla a la ruta del archivo y la cláusula USING para especificar el formato de los datos.
Por ejemplo, la siguiente consulta crea una tabla llamada sales_data haciendo referencia a los archivos Parquet almacenados en /mnt/data/sales_data/.
-- Create a table from Parquet files in a specified locationCREATETABLE sales_data
USING PARQUET
LOCATION '/mnt/data/sales_data/';Con la tecnología de
Cómo crear una tabla como select (CTAS)
También puedes crear una tabla como select ejecutando una consulta y almacenando el resultado. En este caso, la cláusula AS SELECT rellena la tabla con el resultado de la consulta.
Por ejemplo, la consulta siguiente crea una nueva tabla llamada high_value_sales seleccionando y transformando los datos de la tabla existente sales_data. Filtra las filas en las que total_amount sea mayor que 1000, manteniendo sólo las columnas sale_id, customer_id y total_amount.
-- Create a table by selecting and transforming data from another tableCREATETABLE high_value_sales ASSELECT
sale_id,
customer_id,
total_amount
FROM sales_data
WHERE total_amount >1000;Con la tecnología de
Cómo crear una tabla externa
Crear una tabla externa implica hacer referencia a datos almacenados fuera del almacenamiento gestionado de Databricks. Debes utilizar la cláusula LOCATION para especificar la ubicación externa de los datos.
La siguiente consulta crea una tabla Delta externa llamada external_table haciendo referencia a los datos almacenados en /mnt/external_storage/external_table/.
-- Create an external table referencing data outside Databricks storageCREATETABLE external_table
USING DELTA
LOCATION '/mnt/external_storage/external_table/';Con la tecnología de
Cómo crear una tabla LIKE
Para crear una tabla LIKE, duplica el esquema de una tabla existente sin copiar sus datos. En el ejemplo siguiente, la consulta crea una nueva tabla llamada sales_backup con el mismo esquema que una tabla existente sales.
-- Create a new sales table with the same schema as an existing tableCREATETABLE sales_backup LIKE sales;Con la tecnología de
Cómo crear un CLON DE TABLA
Puedes crear un clon de tabla utilizando la cláusula CLONE para crear una copia superficial o profunda de una tabla Delta para copias de seguridad o pruebas.
En el siguiente ejemplo, la consulta crea una nueva tabla, sales_shallow_clone, copiando sólo los metadatos (esquema y propiedades de la tabla).
-- Shallow clone: Copies only metadata (references original data)CREATETABLE sales_shallow_clone CLONE sales_data;Con la tecnología de
El ejemplo siguiente crea una nueva tabla, sales_deep_clone, pero copia tanto los metadatos como los datos reales.
-- Deep clone: Copies both metadata and actual dataCREATETABLE sales_deep_clone CLONE sales_data DEEP;Con la tecnología de
Cómo crear una tabla temporal (tabla temp)
Utiliza la cláusula TEMPORARY al crear tablas temporales para asegurarte de que la tabla es específica de la sesión.
La siguiente consulta crea una tabla temporal llamada temp_table que sólo existe para la sesión actual. Selecciona id, name, y sales_amount de sales_data, filtrando las filas en las que region = 'US'.
-- Create a temporary table that exists only in the sessionCREATETEMPORARYTABLE temp_table ASSELECT
id,
name,
sales_amount
FROM sales_data
WHERE region ='US';Con la tecnología de
Cómo sustituir una mesa
Puedes utilizar la cláusula CREATE OR REPLACE para sustituir la definición y el contenido de la tabla. La siguiente consulta sustituye la tabla existente updated_table por un nuevo esquema y datos. Define la tabla con tres columnas (id, name, total_sales).
-- Replace an existing table with a new schema or dataCREATEORREPLACETABLE updated_table (
id BIGINT,
name STRING,
total_sales DOUBLE)USING DELTA
LOCATION '/mnt/delta/updated_table/';Con la tecnología de
Temas avanzados
En esta sección, exploraré las características avanzadas de las tablas Databricks que mejoran la funcionalidad, el rendimiento y la seguridad.
Columnas generadas y columnas de identidad
Databricks admite columnas de identidad, que generan automáticamente valores únicos para cada nueva fila. Esta función es útil para crear claves sustitutivas en el almacenamiento de datos.
La consulta siguiente crea una tabla employees con tres columnas: id, name, y department. La columna id es una columna de identidad que se autoincrementa con cada nueva fila.
-- Identity column: auto-incremented valueCREATETABLE employees (
id BIGINT GENERATED ALWAYS ASIDENTITY,-- Auto-incremented column
name STRING,
department STRING
);Con la tecnología de
Esta otra consulta crea una tabla sales con tres columnas: sale_id, sale_date, y sale_year. La columna sale_year se genera y se calcula automáticamente a partir de la columna sale_date mediante la función YEAR(sale_date).
-- Generated column: derived from other columnsCREATETABLE sales (
sale_id BIGINT,
sale_date DATE,
sale_year INT GENERATED ALWAYS AS(YEAR(sale_date))-- Derived column);Con la tecnología de
Partición y agrupación
El particionamiento divide los datos en trozos más pequeños, mejorando el rendimiento de la consulta, mientras que la agrupación organiza los datos dentro de las particiones para una lectura más rápida.
Por ejemplo, la consulta siguiente crea una tabla particionada en la que los datos se dividen en particiones basadas en la columna region, lo que mejora el rendimiento de la consulta al filtrar por regiones.
-- Partitioned tableCREATETABLE partitioned_table (
id BIGINT,
region STRING,
sales_amount DOUBLE)USING DELTA
PARTITIONED BY(region);-- Querying by region will be fasterCon la tecnología de
La consulta siguiente optimiza la tabla particionada agrupando los datos dentro de cada partición en función de la columna sales_amount. Hace que las consultas en sales_amount sean más rápidas, mejorando la disposición de los datos para una lectura eficiente. La cláusula ZORDER BY funciona dentro de las particiones para mejorar el rendimiento de la lectura agrupando los datos dentro de las particiones, no entre ellas.
-- Clustered tableOPTIMIZE partitioned_table
ZORDER BY(sales_amount);-- Clusters data within partitions for efficient readsCon la tecnología de
Enmascaramiento de columnas y filtros de filas
El enmascaramiento de columnas y los filtros de filas restringen la visibilidad de los datos en función de las funciones o condiciones de los usuarios, protegiendo la información sensible.
Por ejemplo, la consulta siguiente crea una vista enmascarada denominada masked_table basada en la tabla employees. La columna salary se redacta (se sustituye por REDACTED) para todos los usuarios excepto para los que tienen el rol manager. La declaración CASE garantiza que sólo los directivos puedan ver el salario real, mientras que los demás ven los datos enmascarados.
-- Column masking: Redact sensitive dataCREATE MASKED VIEW masked_table ASSELECT
id,
name,CASEWHENcurrent_user()='manager'THEN salary
ELSE'REDACTED'ENDAS salary
FROM employees;Con la tecnología de
Del mismo modo, la consulta siguiente utiliza filtros de fila para crear o sustituir una vista llamada filtered_table basada en la tabla sales. La vista filtra las filas para incluir sólo los datos en los que region = 'US', restringiendo el acceso sólo a los datos de ventas de EEUU.
-- Row filters: Fine-grained access controlCREATEORREPLACEVIEW filtered_table ASSELECT*FROM sales
WHERE region ='US';-- Limit data visibility to a specific regionCon la tecnología de
Evaluación del esquema
Databricks admite la evolución del esquema mediante CREATE OR REPLACE TABLE y alteraciones de las tablas. Debes utilizar la sentencia CREATE OR REPLACE TABLE para sobrescribir el esquema y los datos y la sentencia ALTER TABLE para modificar el esquema de forma incremental sin afectar a los datos.
La siguiente consulta sustituye la tabla employees existente por un nuevo esquema, añadiendo una nueva columna hire_date y manteniendo los datos almacenados en formato Delta.
-- Schema evolution with CREATE OR REPLACE TABLECREATEORREPLACETABLE employees (
id BIGINT,
name STRING,
department STRING,
hire_date DATE-- New column added)USING DELTA;Con la tecnología de
Esta otra consulta modifica la tabla employees añadiendo una nueva columna salary al esquema existente.
-- Altering a table schemaALTERTABLE employees ADDCOLUMNS(salary DOUBLE);Con la tecnología de
Ajuste del rendimiento
Para optimizar el rendimiento de las tablas a gran escala, puedes utilizar varias propiedades y técnicas de tabla, como la autooptimización y el ordenamiento en Z.
En el siguiente ejemplo, la consulta activa la autooptimización en la página delta_table estableciendo propiedades para compactar automáticamente los archivos pequeños y fusionar los archivos durante las escrituras, lo que mejora la eficacia del almacenamiento.
-- Enable automatic optimizationsALTERTABLE delta_table
SET TBLPROPERTIES ('delta.autoOptimize.optimizeWrite'='true',-- Automatically compact small files'delta.autoOptimize.autoCompact'='true'-- Automatically merge files);Con la tecnología de
Del mismo modo, la consulta siguiente optimiza la delta_table agrupando los datos en función de region y sales_date para mejorar el rendimiento de la consulta, especialmente para los filtros sobre estas columnas.
-- Perform clustering for faster query performanceOPTIMIZE delta_table
ZORDER BY(region, sales_date);-- Improves query efficiency for frequent filtersCon la tecnología de
Buenas prácticas y consideraciones
Aquí tienes algunas cosas que debes tener en cuenta al crear tablas en Databricks, para hacer las cosas correctamente:
Convenciones para nombrar las tablas: Utiliza siempre nombres claros y coherentes para mejorar la descubribilidad y reducir los errores. Evita los caracteres especiales o los nombres excesivamente largos para evitar problemas de compatibilidad.
Seguridad y permisos: Utiliza Unity Catalog para un control de acceso centralizado en todos los activos de datos. Utiliza Listas de Control de Acceso (ACL) para restringir quién puede ver o modificar datos. Además, enmascara los datos sensibles con filtros de columnas o filas.
Copia de seguridad y recuperación: Confía en el historial de versiones de Delta Lake para recuperarlas fácilmente y viajar en el tiempo. Controla y gestiona regularmente la conservación de versiones históricas para equilibrar los costes de almacenamiento y las necesidades de recuperación.
Tablas gestionadas vs. externas: También es importante entender las tablas gestionadas frente a las externas. En las tablas gestionadas, Databricks maneja tanto los metadatos como los datos. Es ideal para situaciones en las que quieres un control total sobre la gestión del ciclo de vida de los datos. Sin embargo, en las tablas externas, los datos referenciados se almacenan fuera de Databricks. Esto es útil para mantener el control sobre los datos que pueden compartirse en diferentes plataformas o sistemas.
Errores comunes y solución de problemas
Ahora que hemos hablado de las mejores prácticas para gestionar tablas en Databricks, permíteme tratar los problemas frecuentes que puedes encontrarte con las tablas de Databricks, sus mensajes de error típicos y, a continuación, las soluciones.
Errores de ubicación no vacía al utilizar CREAR vs. CREAR O SUSTITUIR
Al utilizar CREATE TABLE con una ubicación especificada (cláusulaLOCATION ), si el directorio no está vacío, puedes encontrarte con un error del tipo
Este error se produce porque el comando CREATE TABLE espera un directorio vacío para la ubicación especificada, pero los archivos o metadatos existentes entran en conflicto con este requisito.
Para solucionar este error, utiliza la declaración CREATE OR REPLACE TABLE para sobrescribir los datos y metadatos existentes. O bien, limpia manualmente el directorio antes de utilizar la declaración CREATE TABLE.
CREATEORREPLACETABLE delta_table
USING DELTA
LOCATION '/mnt/data/delta_table';-- Overwrites table and filesCon la tecnología de
Desajuste del esquema o problemas con determinados tipos de datos
Al insertar o consultar datos se producen errores de desajuste de esquema como:
Error: Schema mismatch: Expected columntype STRING, but found INT.Con la tecnología de
El error puede deberse a un desajuste entre el esquema de la tabla y los tipos de datos entrantes. Además, las conversiones de tipos de datos no admitidas o ambiguas (p. ej., tipos complejos anidados) podrían provocar desajustes en el esquema. Para solucionar este error, aplica la correspondencia de esquemas para verificar el esquema durante la creación de la tabla o utiliza la aplicación de esquemas en las tablas Delta.
-- Enforce schema matching during table creationCREATETABLE schema_table (
id INT,
name STRING
)USING DELTA
TBLPROPERTIES ('delta.schema.enforce'='true');-- Enforces strict schemaCon la tecnología de
Además, debes permitir la evolución del esquema cuando añadas nuevas columnas o modifiques los tipos de datos.
Utilizar la conversión explícita de tipos al insertar datos también debería ayudar a solucionar este tipo de error.
INSERTINTO schema_table SELECT CAST(id ASINT), CAST(name AS STRING)FROM source_table;Con la tecnología de
Limitaciones de las transacciones simultáneas con columnas de identidad
Cuando utilices columnas de identidad, puedes encontrarte con problemas relacionados con las transacciones concurrentes, como por ejemplo
Error: Concurrent transactions detected onidentitycolumntableCon la tecnología de
Las columnas de identidad son de estado y pueden tener conflictos cuando varias transacciones intentan insertar datos simultáneamente. Para solucionar este error, utiliza claves sustitutivas para sustituir las columnas de identidad por claves sustitutivas deterministas generadas mediante funciones como uuid() o monotonically_increasing_id().
CREATETABLE better_table ASSELECT
monotonically_increasing_id()AS id,-- Replaces identity column
name, department
FROM source_data;Con la tecnología de
También puedes utilizar MERGE de Delta Lake para flujos de trabajo complejos de inserción y actualización sin depender de columnas de identidad.
MERGEINTO target_table AS t
USING source_table AS s
ON t.id = s.id
WHENMATCHEDTHENUPDATESET*WHENNOTMATCHEDTHENINSERT*;Con la tecnología de
Conclusión
En Databricks, el comando CREATE TABLE es una herramienta versátil para definir estructuras de datos, enlazar con datos externos y derivar nuevos conjuntos de datos mediante consultas. Es importante comprender las diferentes sintaxis para crear y gestionar tablas en Databricks según tus necesidades específicas. Como has visto, puedes elegir entre varios métodos de creación de tablas.
Si quieres explorar los conceptos fundamentales de Databricks, te recomiendo encarecidamente que sigas el curso Introducción a Databricks de DataCamp para aprender sobre Databricks como solución de almacenamiento de datos para Inteligencia Empresarial (BI). También te recomiendo que eches un vistazo a nuestra entrada del blog Certificaciones de Databricks en 2025 para saber cómo obtener certificaciones de Databricks, explorar las ventajas profesionales y aprender a elegir la certificación adecuada para tus objetivos profesionales.
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.
Preguntas frecuentes sobre CREAR TABLA en Databricks
¿Para qué sirve el comando CREAR TABLA en Databricks?⌄
El comando CREATE TABLE se utiliza para definir una nueva tabla en Databricks, permitiendo a los usuarios especificar el esquema de la tabla, el formato de los datos y la ubicación de almacenamiento.
¿Cuál es la diferencia entre tablas gestionadas y externas?⌄
Las tablas gestionadas almacenan tanto metadatos como datos en Databricks, mientras que las tablas externas sólo almacenan metadatos, dejando los datos en una ubicación externa.
¿Una tabla externa es lo mismo que una tabla no gestionada? ⌄
Sí, las tablas externas y las tablas no gestionadas se refieren al mismo concepto en Databricks. Almacenan los metadatos en Databricks, pero mantienen los datos reales en una ubicación externa, lo que te permite gestionar el ciclo de vida de los datos de forma independiente.
¿Qué es un clon superficial frente a uno profundo?⌄
Un clon superficial copia sólo los metadatos, mientras que un clon profundo duplica tanto los datos como los metadatos.
¿Qué son las tablas temporales?⌄
Las tablas temporales sólo existen dentro de la sesión actual y se borran automáticamente al terminar la sesión.
¿Qué es la evolución del esquema en Databricks?⌄
La evolución del esquema te permite modificar el esquema de una tabla existente (por ejemplo, añadiendo o modificando columnas) sin necesidad de volver a crear toda la tabla, lo que resulta especialmente beneficioso para las tablas Delta.
Descubre cómo obtener las certificaciones de Databricks, explora las ventajas profesionales y aprende a elegir la certificación adecuada para tus objetivos en 2026.
Descubre cómo se comparan Azure Synapse y Databricks. Comprende sus características, casos de uso y capacidades de integración, y descubre qué plataforma se adapta mejor a tus necesidades de datos.
Aprende a crear, conectar, gestionar, consultar y proteger tu base de datos Azure SQL. Esta guía paso a paso cubre todo lo esencial para una configuración óptima de la base de datos.
Las tablas Databricks son un componente básico de la plataforma Databricks Lakehouse, diseñada para gestionar el almacenamiento y procesamiento de datos a gran escala. Estas tablas permiten la colaboración entre equipos unificando datos estructurados y no estructurados, al tiempo que soportan cargas de trabajo analíticas.
En este artículo, te guiaré a través de las distintas técnicas para crear tablas en Databricks utilizando el comando
CREATE TABLEcon diversas variaciones de sintaxis para adaptarse a distintos casos de uso. También ofreceré consejos sobre las mejores prácticas a la hora de crear y gestionar tablas en Databricks para conseguir eficacia y fiabilidad.Para empezar, te recomiendo encarecidamente que consultes el sitio web de DataCamp Cómo aprender Databricks: Guía para principiantes de la Plataforma Unificada de Datos entrada de blog para ayudarte a comprender las características y aplicaciones básicas de Databricks y proporcionarte un camino estructurado para iniciar tu aprendizaje. También te recomiendo que sigas nuestro curso de Introducción a Databricks. Aunque tengas experiencia en SQL, verás que las cosas pueden parecer diferentes en la plataforma Databricks Lakehouse. Los ejercicios interactivos de nuestro curso te guiarán a través de las consultas SQL, así como de las funciones de la plataforma y las conexiones con sistemas externos.
Introducción a las tablas Databricks
Para empezar, debemos decir que las tablas Databricks son conjuntos de datos estructurados que facilitan la organización y el acceso a los datos dentro del entorno Databricks Lakehouse. Hay dos tipos:
Las tablas en Databricks suelen estar por defecto en Delta Lake debido a sus características y optimizaciones avanzadas. Delta Lake proporciona transacciones ACID,escalabilidad,mejoras de rendimiento como optimizaciones como el almacenamiento en caché y la indexación, yprocesamiento unificado de datos por lotes y en flujo.
Como nota, las primeras versiones de Azure Databricks utilizaban las tablas heredadas de "formato Hive", que las modernas tablas Delta han sustituido. En general, las tablas Delta modernas superan a las tablas Hive heredadas en fiabilidad y rendimiento, lo que las convierte en la elección por defecto para los flujos de trabajo de Databricks.
He aquí un resumen que creo que puede ayudarte a ver la diferencia entre ambos:
Variaciones de la sintaxis de CREAR TABLA
El comando
CREATE TABLEde Databricks admite múltiples variaciones para adaptarse a distintos casos. Cada variación tiene su propósito, con opciones específicas como localización de archivos, clonación y gestión de metadatos . Si necesitas refrescar tus conocimientos sobre Databricks SQL, te recomiendo que leas nuestro tutorial Databricks SQL para aprender, entre otras cosas, a utilizar un Cuaderno en un almacén Databricks SQL.A continuación encontrarás los principales estilos sintácticos con ejemplos y explicaciones.
CREAR TABLA [USANDO]
Esta sintaxis crea una tabla nueva con un esquema y un formato de datos especificados. La siguiente consulta crea una tabla llamada
sales_dataleyendo datos de archivos Parquet almacenados en una ubicación específica.CREAR TABLA (formato Colmena)
Esta sintaxis heredada es similar al comando estándar SQL
CREATE TABLE, que se utiliza al definir una tabla con metadatos gestionados por Databricks sin necesidad de hacer referencia a archivos externos. La consulta siguiente crea una tabla de estilo Colmena llamadahive_tablecon un esquema predefinido y propiedades de metadatos adicionales.En la consulta anterior, la cláusula
COMMENTañade metadatos descriptivos, mientras queTBLPROPERTIESalmacena propiedades personalizadas sobre la tabla.CREAR TABLA COMO
Este comando crea una nueva tabla utilizando el esquema y las propiedades de una tabla existente. Debes utilizar esta sintaxis cuando quieras replicar la estructura de una tabla existente sin copiar sus datos. Esto es útil a efectos de prueba o desarrollo.
CREAR TABLA CLON
Esta sintaxis te permite crear una tabla nueva clonando una tabla Delta Lake existente, ya sea como clon profundo o superficial. Por tanto, debes utilizar la sintaxis
CREATE TABLE CLONEcuando necesites una copia independiente de los datos y metadatos de una tabla (clon profundo) o sólo los metadatos haciendo referencia a los datos originales (clon superficial). Piensa en esto para versionar o crear copias de seguridad.El siguiente ejemplo muestra las consultas para crear tablas de clonación profunda y clonación superficial en Databricks.
CREAR O SUSTITUIR TABLA
Este comando único y combinado sustituye una tabla existente por una nueva, manteniendo el mismo nombre de tabla, como una sola operación. Debes utilizar esta sintaxis cuando quieras sobrescribir completamente una tabla existente manteniendo su nombre. Esto es especialmente útil para actualizar la estructura o los datos de una tabla sin necesidad de eliminarla primero.
El ejemplo de consulta que aparece a continuación crea o sustituye la tabla
salespor un nuevo esquema.Hay otras cláusulas relevantes que puedes utilizar con la sintaxis
CREATE TABLEen Databricks para gestionar tus tablas según requisitos específicos. A continuación se resume el uso de cada una de estas cláusulas. Ya he utilizado sólo algunos, pero no todos, como ejemplos.IF NOT EXISTS: Evita errores omitiendo la creación de la tabla si ya existe.USING: Especifica el formato del archivo (por ejemplo, Delta, Parquet, CSV).EXTERNAL: Declara una tabla en la que los datos residen fuera del almacenamiento gestionado de Databricks.PARTITIONED BY: Define particiones para optimizar grandes conjuntos de datos.LOCATION: Señala el directorio que contiene los datos de la tabla.TBLPROPERTIES: Añade metadatos para configuraciones y optimizaciones de tablas personalizadas.Demostraciones paso a paso
En esta sección, te mostraré distintas formas de crear y gestionar tablas en Databricks, con ejemplos concisos y explicaciones de las cláusulas clave. Te recomiendo que consultes nuestro Tutorial Databricks: 7 conceptos imprescindibles para cualquier especialista en datos tutorial para aprender a ejecutar comandos SQL en la plataforma Databricks.
Cómo crear una tabla vacía
Para crear una tabla Delta vacía, define el esquema de la tabla con los nombres de las columnas y los tipos de datos. Utiliza la cláusula
USING DELTApara definir el formato de la tabla yCOMMENTpara añadir metadatos descriptivos.Esta consulta crea una tabla Delta vacía llamada
employeescon un esquema predefinido, que incluye columnas paraid,name,departmentyhire_date.Cómo crear una tabla a partir de datos existentes
Para crear una tabla a partir de datos existentes, vincúlala a archivos de datos externos en formatos como CSV, Parquet o JSON. Puedes utilizar la cláusula
LOCATIONpara vincular la tabla a la ruta del archivo y la cláusulaUSINGpara especificar el formato de los datos.Por ejemplo, la siguiente consulta crea una tabla llamada
sales_datahaciendo referencia a los archivos Parquet almacenados en/mnt/data/sales_data/.Cómo crear una tabla como select (CTAS)
También puedes crear una tabla como select ejecutando una consulta y almacenando el resultado. En este caso, la cláusula
AS SELECTrellena la tabla con el resultado de la consulta.Por ejemplo, la consulta siguiente crea una nueva tabla llamada
high_value_salesseleccionando y transformando los datos de la tabla existentesales_data. Filtra las filas en las quetotal_amountsea mayor que 1000, manteniendo sólo las columnassale_id,customer_idytotal_amount.Cómo crear una tabla externa
Crear una tabla externa implica hacer referencia a datos almacenados fuera del almacenamiento gestionado de Databricks. Debes utilizar la cláusula
LOCATIONpara especificar la ubicación externa de los datos.La siguiente consulta crea una tabla Delta externa llamada
external_tablehaciendo referencia a los datos almacenados en/mnt/external_storage/external_table/.Cómo crear una tabla LIKE
Para crear una tabla
LIKE, duplica el esquema de una tabla existente sin copiar sus datos. En el ejemplo siguiente, la consulta crea una nueva tabla llamadasales_backupcon el mismo esquema que una tabla existentesales.Cómo crear un CLON DE TABLA
Puedes crear un clon de tabla utilizando la cláusula
CLONEpara crear una copia superficial o profunda de una tabla Delta para copias de seguridad o pruebas.En el siguiente ejemplo, la consulta crea una nueva tabla,
sales_shallow_clone,copiando sólo los metadatos (esquema y propiedades de la tabla).El ejemplo siguiente crea una nueva tabla,
sales_deep_clone, pero copia tanto los metadatos como los datos reales.Cómo crear una tabla temporal (tabla temp)
Utiliza la cláusula
TEMPORARYal crear tablas temporales para asegurarte de que la tabla es específica de la sesión.La siguiente consulta crea una tabla temporal llamada
temp_tableque sólo existe para la sesión actual. Seleccionaid,name, ysales_amountdesales_data, filtrando las filas en las queregion = 'US'.Cómo sustituir una mesa
Puedes utilizar la cláusula
CREATE OR REPLACEpara sustituir la definición y el contenido de la tabla. La siguiente consulta sustituye la tabla existenteupdated_tablepor un nuevo esquema y datos. Define la tabla con tres columnas (id,name,total_sales).Temas avanzados
En esta sección, exploraré las características avanzadas de las tablas Databricks que mejoran la funcionalidad, el rendimiento y la seguridad.
Columnas generadas y columnas de identidad
Databricks admite columnas de identidad, que generan automáticamente valores únicos para cada nueva fila. Esta función es útil para crear claves sustitutivas en el almacenamiento de datos.
La consulta siguiente crea una tabla
employeescon tres columnas:id,name, ydepartment. La columnaides una columna de identidad que se autoincrementa con cada nueva fila.Esta otra consulta crea una tabla
salescon tres columnas:sale_id,sale_date, ysale_year. La columnasale_yearse genera y se calcula automáticamente a partir de la columnasale_datemediante la funciónYEAR(sale_date).Partición y agrupación
El particionamiento divide los datos en trozos más pequeños, mejorando el rendimiento de la consulta, mientras que la agrupación organiza los datos dentro de las particiones para una lectura más rápida.
Por ejemplo, la consulta siguiente crea una tabla particionada en la que los datos se dividen en particiones basadas en la columna
region, lo que mejora el rendimiento de la consulta al filtrar por regiones.La consulta siguiente optimiza la tabla particionada agrupando los datos dentro de cada partición en función de la columna
sales_amount. Hace que las consultas ensales_amountsean más rápidas, mejorando la disposición de los datos para una lectura eficiente. La cláusulaZORDER BYfunciona dentro de las particiones para mejorar el rendimiento de la lectura agrupando los datos dentro de las particiones, no entre ellas.Enmascaramiento de columnas y filtros de filas
El enmascaramiento de columnas y los filtros de filas restringen la visibilidad de los datos en función de las funciones o condiciones de los usuarios, protegiendo la información sensible.
Por ejemplo, la consulta siguiente crea una vista enmascarada denominada
masked_tablebasada en la tablaemployees. La columnasalaryse redacta (se sustituye porREDACTED) para todos los usuarios excepto para los que tienen el rolmanager. La declaraciónCASEgarantiza que sólo los directivos puedan ver el salario real, mientras que los demás ven los datos enmascarados.Del mismo modo, la consulta siguiente utiliza filtros de fila para crear o sustituir una vista llamada
filtered_tablebasada en la tablasales. La vista filtra las filas para incluir sólo los datos en los queregion = 'US', restringiendo el acceso sólo a los datos de ventas de EEUU.Evaluación del esquema
Databricks admite la evolución del esquema mediante
CREATE OR REPLACE TABLEy alteraciones de las tablas. Debes utilizar la sentenciaCREATE OR REPLACE TABLEpara sobrescribir el esquema y los datos y la sentenciaALTER TABLEpara modificar el esquema de forma incremental sin afectar a los datos.La siguiente consulta sustituye la tabla
employeesexistente por un nuevo esquema, añadiendo una nueva columnahire_datey manteniendo los datos almacenados en formato Delta.Esta otra consulta modifica la tabla
employeesañadiendo una nueva columnasalaryal esquema existente.Ajuste del rendimiento
Para optimizar el rendimiento de las tablas a gran escala, puedes utilizar varias propiedades y técnicas de tabla, como la autooptimización y el ordenamiento en Z.
En el siguiente ejemplo, la consulta activa la autooptimización en la página
delta_tableestableciendo propiedades para compactar automáticamente los archivos pequeños y fusionar los archivos durante las escrituras, lo que mejora la eficacia del almacenamiento.Del mismo modo, la consulta siguiente optimiza la
delta_tableagrupando los datos en función deregionysales_datepara mejorar el rendimiento de la consulta, especialmente para los filtros sobre estas columnas.Buenas prácticas y consideraciones
Aquí tienes algunas cosas que debes tener en cuenta al crear tablas en Databricks, para hacer las cosas correctamente:
Errores comunes y solución de problemas
Ahora que hemos hablado de las mejores prácticas para gestionar tablas en Databricks, permíteme tratar los problemas frecuentes que puedes encontrarte con las tablas de Databricks, sus mensajes de error típicos y, a continuación, las soluciones.
Errores de ubicación no vacía al utilizar CREAR vs. CREAR O SUSTITUIR
Al utilizar
CREATE TABLEcon una ubicación especificada (cláusulaLOCATION), si el directorio no está vacío, puedes encontrarte con un error del tipoEste error se produce porque el comando
CREATE TABLEespera un directorio vacío para la ubicación especificada, pero los archivos o metadatos existentes entran en conflicto con este requisito.Para solucionar este error, utiliza la declaración
CREATE OR REPLACE TABLEpara sobrescribir los datos y metadatos existentes. O bien, limpia manualmente el directorio antes de utilizar la declaraciónCREATE TABLE.Desajuste del esquema o problemas con determinados tipos de datos
Al insertar o consultar datos se producen errores de desajuste de esquema como:
El error puede deberse a un desajuste entre el esquema de la tabla y los tipos de datos entrantes. Además, las conversiones de tipos de datos no admitidas o ambiguas (p. ej., tipos complejos anidados) podrían provocar desajustes en el esquema. Para solucionar este error, aplica la correspondencia de esquemas para verificar el esquema durante la creación de la tabla o utiliza la aplicación de esquemas en las tablas Delta.
Además, debes permitir la evolución del esquema cuando añadas nuevas columnas o modifiques los tipos de datos.
Utilizar la conversión explícita de tipos al insertar datos también debería ayudar a solucionar este tipo de error.
Limitaciones de las transacciones simultáneas con columnas de identidad
Cuando utilices columnas de identidad, puedes encontrarte con problemas relacionados con las transacciones concurrentes, como por ejemplo
Las columnas de identidad son de estado y pueden tener conflictos cuando varias transacciones intentan insertar datos simultáneamente. Para solucionar este error, utiliza claves sustitutivas para sustituir las columnas de identidad por claves sustitutivas deterministas generadas mediante funciones como
uuid()omonotonically_increasing_id().También puedes utilizar
MERGEde Delta Lake para flujos de trabajo complejos de inserción y actualización sin depender de columnas de identidad.Conclusión
En Databricks, el comando
CREATE TABLEes una herramienta versátil para definir estructuras de datos, enlazar con datos externos y derivar nuevos conjuntos de datos mediante consultas. Es importante comprender las diferentes sintaxis para crear y gestionar tablas en Databricks según tus necesidades específicas. Como has visto, puedes elegir entre varios métodos de creación de tablas.Si quieres explorar los conceptos fundamentales de Databricks, te recomiendo encarecidamente que sigas el curso Introducción a Databricks de DataCamp para aprender sobre Databricks como solución de almacenamiento de datos para Inteligencia Empresarial (BI). También te recomiendo que eches un vistazo a nuestra entrada del blog Certificaciones de Databricks en 2025 para saber cómo obtener certificaciones de Databricks, explorar las ventajas profesionales y aprender a elegir la certificación adecuada para tus objetivos profesionales.