Compartir a través de


Uso compartido de tablas de características entre áreas de trabajo (heredadas)

Importante

  • Esta documentación se ha retirado y es posible que no se actualice.
  • Databricks recomienda usar la ingeniería de características en Unity Catalog para compartir tablas de características entre áreas de trabajo. El enfoque de este artículo está en desuso.

Azure Databricks ahora admite el uso compartido de tablas de características entre varias áreas de trabajo. Por ejemplo, desde su propia área de trabajo, puede crear, escribir o leer desde una tabla de características en un almacén de características centralizado. Esto resulta útil cuando varios equipos comparten acceso a tablas de características o cuando su organización tiene varias áreas de trabajo para controlar las distintas fases de desarrollo.

Para un almacén de características centralizado, Databricks recomienda designar una sola área de trabajo para almacenar todos los metadatos del almacén de características y crear cuentas para cada usuario que necesite acceso a dicho almacén.

Si los equipos también comparten modelos entre áreas de trabajo, puede optar por dedicar la misma área de trabajo centralizada para las tablas de características y los modelos, o bien puede especificar diferentes áreas de trabajo centralizadas para cada uno de ellos.

Varias áreas de trabajo de almacenes de características

El acceso al almacén de características centralizado se controla mediante tokens. Cada usuario o script que necesita acceso crea un token de acceso personal en el almacén de características centralizado y copia ese token en el administrador de secretos de su área de trabajo local. Cada solicitud de API enviada al área de trabajo centralizada del almacén de características debe incluir el token de acceso. El cliente del almacén de características proporciona un mecanismo sencillo para especificar los secretos que se usarán al realizar operaciones entre áreas de trabajo.

Nota:

Como procedimiento recomendado de seguridad, cuando se autentique con herramientas, sistemas, scripts y aplicaciones automatizados, Databricks recomienda usar los tokens de acceso personal pertenecientes a las entidades de servicio en lugar de a los usuarios del área de trabajo. Para crear tókenes para entidades de servicio, consulte Administración de tokens de acceso para una entidad de servicio.

Requisitos

El uso de un almacén de características entre áreas de trabajo requiere:

  • Característica Store client v0.3.6 y posteriores.
  • Ambas áreas de trabajo deben tener acceso a los datos de características sin procesar. Deben compartir el mismo metastore externo de Hive y tener acceso al mismo almacenamiento de DBFS.
  • Si las listas de acceso IP están habilitadas, las direcciones IP del área de trabajo deben estar en las listas de acceso.

Configuración del token de API para un registro remoto

En esta sección, "Área de trabajo B" hace referencia al área de trabajo del almacén de características centralizada o remota.

  1. En el área de trabajo B, cree un token de acceso.
  2. En el área de trabajo local, cree secretos para almacenar el token de acceso y la información sobre el área de trabajo B:
    1. Creación de un ámbito de secretos: databricks secrets create-scope --scope <scope>.
    2. Elija un identificador único para el área de trabajo B, que se muestra aquí como <prefix>. A continuación, cree tres secretos con los nombres de clave especificados:
      • databricks secrets put --scope <scope> --key <prefix>-host : escriba el nombre de host del área de trabajo B. Use los siguientes comandos de Python para obtener el nombre de host de un área de trabajo:

        import mlflow
        
        host_url = mlflow.utils.databricks_utils.get_webapp_url()
        host_url
        
      • databricks secrets put --scope <scope> --key <prefix>-token : escriba el token de acceso del área de trabajo B.

      • databricks secrets put --scope <scope> --key <prefix>-workspace-id: escriba el id. de área de trabajo para el área de trabajo B, que puede encontrarse en la URL de cualquier página.

Nota:

Es posible que quiera compartir el ámbito de secreto con otros usuarios, ya que hay un límite en el número de ámbitos secretos por área de trabajo.

Especificación de un almacén de características remoto

En función del ámbito de secreto y el prefijo de nombre que creó para el área de trabajo del almacén de características, puede construir un URI de almacén de características con el formato siguiente:

feature_store_uri = f'databricks://<scope>:<prefix>'

A continuación, especifique el URI explícitamente al crear una instancia de FeatureStoreClient:

fs = FeatureStoreClient(feature_store_uri=feature_store_uri)

Creación de una base de datos para tablas de características en la ubicación compartida de DBFS

Antes de crear tablas de características en el almacén de características remoto, debe crear una base de datos para almacenarlas. La base de datos debe existir en la ubicación de DBFS compartida.

Por ejemplo, para crear una base de datos recommender en la ubicación compartida /mnt/shared, use el siguiente comando:

%sql CREATE DATABASE IF NOT EXISTS recommender LOCATION '/mnt/shared'

Creación de una tabla de características en el almacén de características remoto

La API para crear una tabla de características en un almacén de características remoto depende de la versión del runtime de Databricks que use.

V0.3.6 y versiones posteriores

Uso de la API FeatureStoreClient.create_table:

fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
fs.create_table(
  name='recommender.customer_features',
  primary_keys='customer_id',
  schema=customer_features_df.schema,
  description='Customer-keyed features'
)

V0.3.5 y versiones anteriores

Uso de la API FeatureStoreClient.create_feature_table:

fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
fs.create_feature_table(
  name='recommender.customer_features',
  keys='customer_id',
  schema=customer_features_df.schema,
  description='Customer-keyed features'
)

Para obtener ejemplos de otros métodos del Almacén de características, vea Ejemplo de Notebook: uso compartido de tablas de características entre áreas de trabajo.

Uso de una tabla de características del almacén de características remoto

Puede leer una tabla de características del almacén de características remoto con el método FeatureStoreClient.read_table estableciendo primero feature_store_uri:

fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
customer_features_df = fs.read_table(
  name='recommender.customer_features',
)

También se admiten otros métodos auxiliares para acceder a la tabla de características:

fs.read_table()
fs.get_feature_table() # in v0.3.5 and below
fs.get_table() # in v0.3.6 and above
fs.write_table()
fs.publish_table()
fs.create_training_set()

Uso de un registro de modelo remoto

Además de especificar un URI de almacén de características remoto, también puede especificar un URI de registro de modelo remoto para compartir modelos entre áreas de trabajo.

Para especificar un registro de modelo remoto para el registro o puntuación de modelo, puede usar un URI de registro de modelo para crear una instancia de FeatureStoreClient.

fs = FeatureStoreClient(model_registry_uri=f'databricks://<scope>:<prefix>')
customer_features_df = fs.log_model(
    model,
    "recommendation_model",
    flavor=mlflow.sklearn,
    training_set=training_set,
    registered_model_name="recommendation_model"
)

Con feature_store_uri y model_registry_uri, puede entrenar un modelo mediante cualquier tabla de características local o remota y, a continuación, registrar el modelo en cualquier registro de modelo local o remoto.

fs = FeatureStoreClient(
    feature_store_uri=f'databricks://<scope>:<prefix>',
    model_registry_uri=f'databricks://<scope>:<prefix>'
)

Ejemplo de Notebook: uso compartido de tablas de características entre áreas de trabajo

En el cuaderno siguiente se muestra cómo trabajar con un almacén de características centralizado.

Cuaderno de ejemplo del almacén de características centralizado

Obtener el cuaderno