Uso de tablas externas
Las tablas externas almacenan datos en un directorio en el almacenamiento de objetos en la nube en el inquilino de nube. Debe especificar una ubicación de almacenamiento al definir una tabla externa.
Databricks recomienda usar tablas externas solo cuando se requiere acceso directo a los datos sin usar el proceso en Azure Databricks. Los privilegios de Unity Catalog no se aplican cuando los usuarios acceden a archivos de datos desde sistemas externos.
Nota:
Este artículo se centra en las tablas externas de Unity Catalog. Las tablas externas del metastore de Hive antiguo tienen comportamientos diferentes. Consulte Objetos de base de datos en el metastore de Hive heredado.
Uso de tablas externas
Azure Databricks solo administra los metadatos de las tablas externas y no usa la ubicación de almacenamiento de administración asociada al esquema contenedor. El registro de tabla en Unity Catalog es solo un puntero a los archivos de datos. Al quitar una tabla externa, no se eliminan los archivos de datos.
Al crear una tabla externa, puede registrar un directorio existente de archivos de datos como una tabla o proporcionar una ruta de acceso para crear nuevos archivos de datos.
Las tablas externas pueden usar los siguientes formatos de archivo:
- DELTA
- CSV
- JSON
- AVRO
- PARQUET
- ORC
- TEXT
Creación de una tabla externa
Para crear una tabla externa, puede usar comandos SQL u operaciones de escritura de DataFrame.
Antes de empezar
Para crear una tabla externa, debe cumplir los siguientes requisitos de permisos:
- El privilegio
CREATE EXTERNAL TABLE
sobre una ubicación externa que conceda acceso al valor deLOCATION
al que tiene acceso la tabla externa. - El permiso
USE SCHEMA
sobre el esquema principal de la tabla. - El permiso
USE CATALOG
sobre el catálogo principal de la tabla. - El permiso
CREATE TABLE
sobre el esquema principal de la tabla.
Para más información sobre la configuración de las ubicaciones externas, consulte Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks.
Ejemplos de comandos de SQL
Use uno de los siguientes ejemplos de comandos en un cuaderno o en el editor de consultas SQL para crear una tabla externa.
En los ejemplos siguientes, reemplace los valores de marcador de posición:
<catalog>
: nombre de la base de datos que contendrá la tabla.<schema>
: nombre del esquema que contendrá la tabla.<table-name>
: nombre para la tabla.<column-specification>
: nombre y tipo de datos de cada columna.<bucket-path>
: ruta de acceso al cubo de almacenamiento en la nube donde se creará la tabla.<table-directory>
: directorio donde se creará la tabla. Use un directorio único para cada tabla.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Para obtener más información acerca de los parámetros de creación de tablas, vea CREATE TABLE.
Operaciones de escritura de DataFrame
Muchos usuarios crean tablas externas a partir de resultados de consulta u operaciones de escritura de DataFrame. En los artículos siguientes se muestran algunos de los muchos patrones que puede usar para crear una tabla externa en Azure Databricks:
Anulación de una tabla externa
Para anular un recurso compartido, debe ser su propietario. Para anular una tabla externa, ejecute el siguiente comando de SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog no elimina los datos subyacentes en el almacenamiento en nube cuando se anula una tabla externa. Debe eliminar directamente los archivos de datos subyacentes si necesita quitar los datos asociados a la tabla.
Cuaderno de ejemplo: Creación de tablas externas
Puede usar el cuaderno de ejemplo siguiente para crear un catálogo, un esquema y una tabla external, y para administrar los permisos sobre ellos.