Compartir a través de


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

Crear 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 de LOCATION 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.

Creación y administración de una tabla externa en el cuaderno de Unity Catalog

Obtener el cuaderno