Cómo cargar datos de las exportaciones de Cloud Datastore

Google BigQuery admite la carga de datos de las exportaciones de Cloud Datastore creadas mediante el servicio de importación y exportación administrado de Cloud Datastore. Puedes usar el usar el servicio administrado de importación y exportación para exportar entidades de Cloud Datastore en un depósito de Cloud Storage. Luego, puedes cargar la exportación en BigQuery como una tabla.

Para obtener información sobre cómo crear un archivo de exportación de Cloud Datastore, consulta Cómo exportar y también importar entidades en la documentación de Cloud Datastore. Para obtener información sobre cómo programar exportaciones, consulta Cómo programar una exportación.

Puedes controlar qué propiedades de BigQuery se deben cargar mediante la configuración de la propiedad projectionFields en la API, o mediante el uso de la marca --projection_fields en la CLI.

Si prefieres omitir el proceso de carga, puedes consultar la exportación configurándola directamente como una fuente de datos externa. Para obtener más información, consulta Fuentes de datos externas.

Cuando cargas datos de Cloud Storage en una tabla de BigQuery, el conjunto de datos que contiene la tabla debe estar en la misma ubicación regional o multirregional que el depósito de Cloud Storage.

Permisos necesarios

Cuando cargas datos en BigQuery, necesitas permisos de proyecto o de nivel de conjunto de datos que te permitan cargar datos en tablas y particiones de BigQuery nuevas o existentes. Si cargas datos desde Cloud Storage, también necesitas acceso al depósito que contiene tus datos.

Permisos de BigQuery

Cuando cargas datos en BigQuery desde Cloud Storage, se te debe otorgar la función bigquery.dataOwner o bigquery.dataEditor a nivel de proyecto o a nivel de conjunto de datos. Ambas funciones otorgan a los usuarios y grupos el permiso para cargar datos en una tabla nueva, o agregar o reemplazar una tabla existente.

Otorgar las funciones a nivel de proyecto le da al usuario o al grupo permiso para cargar datos en tablas en cada conjunto de datos del proyecto. Otorgar las funciones a nivel de conjunto de datos le da al usuario o al grupo la capacidad para cargar datos solo en las tablas de ese conjunto de datos.

Para obtener más información sobre cómo configurar el acceso al conjunto de datos, consulta Cómo controlar el acceso al conjunto de datos. Para obtener más información sobre las funciones IAM en BigQuery, consulta Control de acceso.

Permisos de Cloud Storage

Para cargar datos desde un depósito de Cloud Storage, se te deben otorgar permisos de storage.objects.get en el nivel del proyecto o en ese depósito individual. Si usas un comodín URI, también debes tener los permisos storage.objects.list.

Se puede otorgar la función predefinida storage.objectViewer de IAM para proporcionar los permisos storage.objects.get y storage.objects.list.

Limitaciones

Cuando cargues datos en BigQuery desde una exportación de Cloud Datastore, ten en cuenta las siguientes restricciones:

  • No puedes usar un comodín en el URI de Cloud Storage cuando especificas un archivo de exportación de Cloud Datastore.
  • Puedes especificar solo un URI de Cloud Storage al cargar datos desde las exportaciones de Cloud Datastore.
  • No puedes adjuntar datos de exportación de Cloud Datastore a una tabla existente con un esquema definido.
  • Para que una exportación de Cloud Datastore se cargue correctamente, las entidades en los datos de exportación deben compartir un esquema coherente.
  • Los datos que se exportan sin especificar un filtro de entidad no pueden cargarse en BigQuery. La exportación debe incluir uno o más nombres de categorías en el filtro de entidad.

Cómo cargar datos del servicio de exportación de Cloud Datastore

Para cargar datos desde un archivo de metadatos de exportación de Cloud Datastore, haz lo siguiente:

IU web

  1. Ve a la IU web de BigQuery.
    Ir a la IU web de BigQuery
  2. En el panel de navegación, desplázate sobre un conjunto de datos, haz clic en el ícono de flecha hacia abajo imagen del ícono de flecha hacia abajo y haz clic en Crear tabla nueva. El proceso de carga de datos es el mismo que el proceso para crear una tabla vacía.
  3. En la página Crear tabla, en la sección Datos fuente:
    • Deja seleccionada la opción Crear desde la fuente.
    • En Ubicación, selecciona Google Cloud Storage y en el campo de fuente ingresa el URI de Cloud Storage. El depósito de Cloud Storage debe estar en la misma ubicación que el conjunto de datos que contiene la tabla que estás creando. El URI para tu archivo de exportación de Cloud Datastore debe terminar con [KIND_NAME].export_metadata. Por ejemplo: default_namespace_kind_Book.export_metadata. En este ejemplo, Book es el nombre de la categoría y default_namespace_kind_Book es el nombre del archivo generado por Cloud Datastore.

      Verifica que se especifique [KIND_NAME] en tu URI de Cloud Storage. Si especificas el URI sin [KIND_NAME], recibirás el siguiente error: does not contain valid backup metadata. (error code: invalid).

    • En Formato de archivo, selecciona Copia de seguridad de Cloud Datastore.
  4. En la página Crear tabla, en la sección Tabla de destino, haz lo siguiente:
    • En Nombre de tabla, selecciona el conjunto de datos que corresponda y en el campo de nombre de tabla ingresa el nombre de la tabla que vas a crear en BigQuery.
    • Verifica que Tipo de tabla esté configurado como Tabla nativa.
  5. En la sección Esquema, no hace falta que realices ninguna acción. El esquema se infiere de una exportación de Cloud Datastore.
  6. Selecciona los elementos aplicables en la sección Opciones y haz clic en Crear tabla. Para obtener más información sobre las opciones disponibles, consulta las opciones de Cloud Datastore.

Línea de comandos

Usa el comando bq load con source_format configurado en DATASTORE_BACKUP. Proporciona la marca --location y configura el valor para tu ubicación.

bq --location=[LOCATION] load --source_format=[FORMAT] [DATASET].[TABLE] [PATH_TO_SOURCE]

donde:

  • [LOCATION] es tu ubicación. La marca --location es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, configura el valor de la marca en asia-northeast1. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc.
  • [FORMAT] es DATASTORE_BACKUP.
  • [DATASET] es el conjunto de datos que contiene la tabla en la que cargas los datos.
  • [TABLE] es la tabla en la que cargas los datos. Si la tabla no existe, se creará.
  • [PATH_TO_SOURCE] es el URI de Cloud Storage.

Por ejemplo, el siguiente comando carga el archivo de exportación de Cloud Datastore gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata en una tabla llamada book_data. mybucket y mydataset se crearon en la ubicación multirregional US.

bq --location=US load --source_format=DATASTORE_BACKUP mydataset.book_data gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata

API

Configura las siguientes propiedades para cargar los datos de exportación de Cloud Datastore con la API.

  1. Crea un trabajo de carga que apunte a los datos fuente en Google Cloud Storage.

  2. Especifica tu ubicación en la propiedad location en la sección jobReference del recurso de trabajo.

  3. Los URI de origen deben estar completamente calificados en el formato gs://[BUCKET]/[OBJECT]. El nombre del archivo (objeto) debe terminar en [KIND_NAME].export_metadata. Solo se permite un URI para las exportaciones de Cloud Datastore, y no puedes usar un comodín.

  4. Configura la propiedad configuration.load.sourceFormat en DATASTORE_BACKUP para especificar el formato de los datos.

Copias de seguridad del administrador de Cloud Datastore

Si usas la función de copia de seguridad del administrador de Cloud Datastore para exportar tus datos desde Cloud Datastore, ten en cuenta que la extensión del archivo será .backup_info en lugar de .export_metadata. Cuando importas tus datos en BigQuery, puedes utilizar un archivo .backup_info o .export_metadata hasta que el servicio de copias de seguridad del administrador de Datastore no esté disponible.

Cómo adjuntar o sobrescribir una tabla con datos de Cloud Datastore

Cuando cargas datos de exportación de Cloud Datastore en BigQuery, puedes crear una tabla nueva para almacenar los datos o puedes reemplazar una tabla existente. No puedes adjuntar datos de exportación de Cloud Datastore a una tabla existente.

Si intentas adjuntar datos de exportación de Cloud Datastore a una tabla existente, se produce el siguiente error: Cannot append a datastore backup to a table that already has a schema. Try using the WRITE_TRUNCATE write disposition to replace the existing table.

Para sobrescribir una tabla existente con datos de exportación de Cloud Datastore, haz lo siguiente:

IU web

  1. Ve a la IU web de BigQuery.
    Ir a la IU web de BigQuery
  2. En el panel de navegación, desplázate sobre un conjunto de datos, haz clic en el ícono de flecha hacia abajo imagen del ícono de flecha hacia abajo y haz clic en Crear tabla nueva. El proceso de carga de datos es el mismo que el proceso para crear una tabla vacía.
  3. En la página Crear tabla, en la sección Datos fuente:
    • Deja seleccionada la opción Crear desde la fuente.
    • En Ubicación, selecciona Google Cloud Storage y en el campo de fuente ingresa el URI de Cloud Storage. El depósito de Cloud Storage debe estar en la misma ubicación que el conjunto de datos que contiene la tabla que estás creando. El URI para tu archivo de exportación de Cloud Datastore debe terminar con [KIND_NAME].export_metadata. Por ejemplo: default_namespace_kind_Book.export_metadata. En este ejemplo, Book es el nombre de la categoría y default_namespace_kind_Book es el nombre del archivo generado por Cloud Datastore.

      Verifica que se especifique [KIND_NAME] en tu URI de Cloud Storage. Si especificas el URI sin [KIND_NAME], recibirás el siguiente error: does not contain valid backup metadata. (error code: invalid).

    • En Formato de archivo, selecciona Copia de seguridad de Cloud Datastore.
  4. En la página Crear tabla, en la sección Tabla de destino, haz lo siguiente:
    • En Nombre de tabla, selecciona el conjunto de datos que corresponda y en el campo de nombre de tabla ingresa el nombre de la tabla que vas a reemplazar.
    • Verifica que Tipo de tabla esté configurado como Tabla nativa.
  5. En la sección Esquema, no hace falta que realices ninguna acción. El esquema se infiere de una exportación de Cloud Datastore.
  6. En la sección Opciones, en Escribir preferencia, selecciona Reemplazar tabla.
  7. Haz clic en Crear tabla.

Línea de comandos

Usa el comando bq load con la marca --replace y con source_format configurado en DATASTORE_BACKUP. Proporciona la marca --location y configura el valor para tu ubicación. .

bq --location=[LOCATION] load --source_format=[FORMAT] --replace [DATASET].[TABLE] [PATH_TO_SOURCE]

donde:

  • [LOCATION] es tu ubicación. La marca --location es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, configura el valor de la marca en asia-northeast1. Puedes configurar un valor predeterminado para la ubicación con el archivo .bigqueryrc.
  • [FORMAT] es DATASTORE_BACKUP.
  • [DATASET] es el conjunto de datos que contiene la tabla en la que cargas los datos.
  • [TABLE] es la tabla que reemplazarás.
  • [PATH_TO_SOURCE] es el URI de Cloud Storage.

Por ejemplo, el siguiente comando carga el archivo de exportación de Cloud Datastore gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata y reemplaza una tabla llamada book_data.

bq load --source_format=DATASTORE_BACKUP --replace mydataset.book_data gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata

API

Configura las siguientes propiedades para cargar datos desde la API.

  1. Crea un trabajo de carga que apunte a los datos fuente en Google Cloud Storage.

  2. Especifica tu ubicación en la propiedad location en la sección jobReference del recurso de trabajo.

  3. Los URI de origen deben estar completamente calificados en el formato gs://[BUCKET]/[OBJECT]. El nombre del archivo (objeto) debe terminar en [KIND_NAME].export_metadata. Solo se permite un URI para las exportaciones de Cloud Datastore, y no puedes usar un comodín.

  4. Configura la propiedad configuration.load.sourceFormat en DATASTORE_BACKUP para especificar el formato de los datos.

  5. Configura la propiedad configuration.load.writeDisposition en WRITE_TRUNCATE para especificar la disposición de escritura.

Opciones de Cloud Datastore

Para cambiar la forma en que BigQuery analiza los datos de exportación de Cloud Datastore, especifica opciones adicionales en la IU, la CLI o la API.

Opción CSV Opción de IU web Marca CLI Propiedad de la API de BigQuery Descripción
Campos de proyección Ninguna --projection_fields projectionFields Una lista separada por comas que indica qué propiedades de la entidad se cargan en BigQuery desde una exportación de Cloud Datastore. Los nombres de propiedad distinguen entre mayúsculas y minúsculas y deben ser propiedades de nivel superior. Si no se especifican propiedades, BigQuery carga todas las propiedades. Si alguna propiedad nombrada no se encuentra en la exportación de Cloud Datastore, se devuelve un error no válido en el resultado del trabajo. El valor predeterminado es ''.
Cantidad de registros incorrectos permitidos Cantidad de errores permitidos --max_bad_records maxBadRecords (Opcional) El número máximo de registros erróneos que BigQuery puede ignorar cuando ejecuta el trabajo. Si el número de registros incorrectos excede este valor, se muestra un error no válido en el resultado del trabajo. El valor predeterminado es 0, por lo que es obligatorio que todos los registros sean válidos.

Conversión de tipo de datos

BigQuery convierte los datos de cada entidad en los archivos de exportación de Cloud Datastore en tipos de datos de BigQuery. La siguiente tabla describe la conversión entre tipos de datos.

Tipos de datos de Cloud Datastore Tipos de datos de BigQuery
Blob BigQuery descarta estos valores al cargar los datos.
Clave Blobstore STRING
Booleano BOOLEANO
Categoría STRING
Clave de Datastore REGISTRO
Fecha y hora MARCA DE TIEMPO
Correo electrónico STRING
Entidad incorporada REGISTRO
Número de punto flotante FLOTANTE
Punto geográfico

REGISTRO


[{"lat","DOUBLE"},
 {"long","DOUBLE"}]
        
Controlador de IM STRING
Número entero NÚMERO ENTERO
Vínculo STRING
Número de teléfono STRING
Dirección postal STRING
Calificación NÚMERO ENTERO
Blob corto BigQuery descarta estos valores al cargar los datos.
String STRING (truncado a 64 KB)
Usuario

REGISTRO


[{"email","STRING"}
 {"userid","STRING"}]
        

Propiedades de la clave de Datastore

Cada entidad en Cloud Datastore tiene una clave única que contiene información como el espacio de nombres y la ruta. BigQuery crea un tipo de dato RECORD para la clave, con campos anidados para cada tipo de información, como se describe en la siguiente tabla.

Propiedad de la clave Descripción Tipos de datos de BigQuery
__key__.app El nombre de la app de Cloud Datastore. STRING
__key__.id El ID de la entidad o null si se configura __key__.name. NÚMERO ENTERO
__key__.kind La categoría de la entidad. STRING
__key__.name El nombre de la entidad o null si se configura __key__.id. STRING
__key__.namespace Si la app de Cloud Datastore utiliza un espacio de nombres personalizado, debe ser el espacio de nombres de la entidad. De lo contrario, el espacio de nombres predeterminado estará representado por una string vacía. STRING
__key__.path La ruta ancestral de la entidad acoplada, consiste en una secuencia de pares de identificadores de categoría desde la entidad raíz hasta la entidad misma. Por ejemplo: "Country", "USA", "PostalCode", 10011, "Route", 1234. STRING
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.