Supervisión y administración de los costos de salida de Delta Sharing (para proveedores)
En este artículo se describen las herramientas que puede usar para supervisar y administrar los costos de salida del proveedor de la nube al compartir datos y recursos de inteligencia artificial mediante Delta Sharing.
A diferencia de otras plataformas de uso compartido de datos, Delta Sharing no requiere replicación de datos. Este modelo tiene muchas ventajas, pero significa que el proveedor de la nube puede cobrar tarifas de salida de datos al compartir datos entre nubes o regiones. Si usa Delta Sharing para compartir datos y recursos de inteligencia artificial dentro de una región, no incurrirá en ningún costo de salida.
Para supervisar y administrar los cargos de salida, Databricks proporciona:
- Instrucciones para replicar datos entre regiones para evitar tarifas de salida.
- Compatibilidad con el almacenamiento de Cloudflare R2 para evitar tarifas de salida.
Replicación de datos para evitar costos de salida
Un enfoque para evitar los costos de salida es que el proveedor cree y sincronice réplicas locales de datos compartidos en regiones que usan sus destinatarios. Otro enfoque es que los destinatarios clonen los datos compartidos en regiones locales para realizar consultas activas, al configurar sincronizaciones entre la tabla compartida y el clon local. En esta sección se describe una serie de patrones de replicación.
Uso del clon profundo delta para la replicación incremental
Los proveedores pueden usar DEEP CLONE
para replicar tablas Delta en ubicaciones externas en las regiones a las que comparten. Los clones profundos copian los metadatos y los datos de la tabla de origen en el destino clonado. Los clones profundos también permiten las actualizaciones incrementales mediante la identificación de nuevos datos en la tabla de origen y la actualización del destino en consecuencia.
CREATE TABLE [IF NOT EXISTS] table_name DEEP CLONE source_table_name
[TBLPROPERTIES clause] [LOCATION path];
Puede programar un trabajo de Databricks para actualizar los datos de la tabla de destino de forma incremental con las actualizaciones recientes de la tabla compartida mediante el siguiente comando:
CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;
Consulte Clonar una tabla en Azure Databricks y Programar y orquestar flujos de trabajo.
Habilitación de la fuente de distribución de datos de cambios (CDF) en tablas compartidas para la replicación incremental
Cuando se comparte una tabla con su CDF, el destinatario puede acceder a los cambios y combinarlos en una copia local de la tabla, donde los usuarios realizan consultas. En este escenario, el acceso de destinatario a los datos no cruza los límites de la región y la salida se limita a actualizar una copia local. Si el destinatario está en Databricks, puede usar un trabajo de flujo de trabajo de Databricks para propagar los cambios a una réplica local.
Para compartir una tabla con CDF, debe habilitar CDF en la tabla y compartirla WITH HISTORY
.
Para más información sobre el uso de CDF, consulte Uso de la fuente de distribución de datos de cambios de Delta Lake en Azure Databricks.
Uso de réplicas de Cloudflare R2 o migración de almacenamiento a R2
El almacenamiento de objetos de Cloudflare R2 no conlleva tarifas de salida. La replicación o migración de datos que comparte en R2 le permite compartir datos mediante Delta Sharing sin incurrir en tarifas de salida. En esta sección se describe cómo replicar datos en una ubicación de R2 y habilitar las actualizaciones incrementales de las tablas de origen.
Requisitos
- Área de trabajo de Databricks habilitada para Unity Catalog.
- Databricks Runtime 14.3 o superior, o SQL Warehouse 2024.15 o superior.
- Una cuenta de Cloudflare. Vea https://dash.cloudflare.com/sign-up.
- Rol de administrador de Cloudflare R2. Consulte la documentación de roles de Cloudflare.
- Privilegio
CREATE STORAGE CREDENTIAL
en el metastore de Unity Catalog asociado al área de trabajo. Los administradores de cuentas y los administradores de metastore tienen este privilegio de manera predeterminada. - El privilegio
CREATE EXTERNAL LOCATION
en el metastore y en la credencial de almacenamiento a la que se hace referencia en la ubicación externa. Los administradores de metastore tienen esos privilegios de manera predeterminada. - Privilegio
CREATE MANAGED STORAGE
en la ubicación externa. CREATE CATALOG
en el metastore. Los administradores de metastore tienen esos privilegios de manera predeterminada.
Montaje de un cubo de R2 como una ubicación externa en Azure Databricks
Cree un cubo de Cloudflare R2.
Consulte Configuración de un cubo de R2.
Cree una credencial de almacenamiento en Unity Catalog que proporcione acceso al cubo de R2.
Use la credencial de almacenamiento para crear una ubicación externa en Unity Catalog.
Consulte Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks.
Creación de un nuevo catálogo mediante la ubicación externa
Cree un catálogo que use la nueva ubicación externa como su ubicación de almacenamiento administrada.
Consulte Creación de catálogos.
Al crear el catálogo, haga lo siguiente:
Explorador de catálogo
- Seleccione un tipo de catálogo Estándar.
- En Ubicación de almacenamiento, elija Seleccionar una ubicación de almacenamiento y escriba la ruta de acceso al cubo de R2 que definió como una ubicación externa. Por ejemplo:
r2://mybucket@my-account-id.r2.cloudflarestorage.com
SQL
Use la ruta de acceso al cubo de R2 que definió como una ubicación externa. Por ejemplo:
CREATE CATALOG IF NOT EXISTS my-r2-catalog
MANAGED LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com'
COMMENT 'Location for managed tables and volumes to share using Delta Sharing';
Clonación de los datos que desea compartir en una tabla en el nuevo catálogo
Use DEEP CLONE
para replicar tablas en Azure Data Lake Storage Gen2 en el nuevo catálogo que usa R2 para el almacenamiento administrado. Los clones profundos copian los metadatos y los datos de la tabla de origen en el destino clonado. Los clones profundos también permiten las actualizaciones incrementales mediante la identificación de nuevos datos en la tabla de origen y la actualización del destino en consecuencia.
CREATE TABLE IF NOT EXISTS new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table
LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com';
Puede programar un trabajo de Databricks para actualizar los datos de la tabla de destino de forma incremental con las actualizaciones recientes de la tabla de origen mediante el siguiente comando:
CREATE OR REPLACE TABLE new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table;
Consulte Clonar una tabla en Azure Databricks y Programar y orquestar flujos de trabajo.
Uso compartido de la nueva tabla
Al crear el recurso compartido, agregue las tablas que se encuentran en el nuevo catálogo, almacenadas en R2. El proceso es el mismo que agregar cualquier tabla a un recurso compartido.
Consulte Creación y administración de recursos compartidos de Delta Sharing.