Cargar datos de Google Play en BigQuery
Puede cargar datos de Google Play en BigQuery mediante el conector de BigQuery Data Transfer Service para Google Play. Con BigQuery Data Transfer Service, puede programar tareas de transferencia periódicas que añadan sus datos más recientes de Google Play a BigQuery.
Descripción general de los conectores
BigQuery Data Transfer Service para el conector de Google Play admite las siguientes opciones para la transferencia de datos.
Opciones de transferencia de datos | Asistencia |
---|---|
Informes admitidos |
Para obtener información sobre cómo se transforman los informes de Google Play en tablas y vistas de BigQuery, consulta el artículo Transformación de informes de Google Play. |
Frecuencia de repetición | El conector de Google Play admite transferencias de datos diarias. De forma predeterminada, las transferencias de datos se programan en el momento en que se crean. Puedes configurar la hora de la transferencia de datos cuando configures la transferencia de datos. |
Ventana de actualización | El conector de Google Play obtiene datos de Google Play de hasta 7 días en el momento en que se ejecuta la transferencia de datos.
Para obtener más información, consulta Actualizar ventanas. |
Disponibilidad de los datos de reposición | Ejecuta un rellenado automático de datos para recuperar datos que no estén incluidos en la transferencia de datos programada. Puedes recuperar datos de hace tanto tiempo como permita la política de conservación de datos de tu fuente de datos. |
Ingestión de datos de transferencias de Google Play
Cuando transfiere datos de Google Play a BigQuery, los datos se cargan en tablas de BigQuery con particiones por fecha. La partición de la tabla en la que se cargan los datos corresponde a la fecha de la fuente de datos. Si programa varias transferencias para la misma fecha, BigQuery Data Transfer Service sobrescribirá la partición de esa fecha con los datos más recientes. Si se realizan varias transferencias el mismo día o se ejecutan rellenados, no se duplicarán los datos y no se verán afectadas las particiones de otras fechas.Actualizar ventanas
Una ventana de actualización es el número de días durante los que una transferencia de datos recupera datos cuando se produce una transferencia de datos. Por ejemplo, si la ventana de actualización es de tres días y se produce una transferencia diaria, BigQuery Data Transfer Service recupera todos los datos de la tabla de origen de los últimos tres días. En este ejemplo, cuando se produce una transferencia diaria, BigQuery Data Transfer Service crea una partición de tabla de destino de BigQuery con una copia de los datos de la tabla de origen del día actual y, a continuación, activa automáticamente ejecuciones de relleno para actualizar las particiones de tabla de destino de BigQuery con los datos de la tabla de origen de los dos días anteriores. Las ejecuciones de relleno automático sobrescribirán o actualizarán de forma incremental tu tabla de destino de BigQuery, en función de si el conector de BigQuery Data Transfer Service admite o no las actualizaciones incrementales.
Cuando ejecutas una transferencia de datos por primera vez, esta recupera todos los datos de origen disponibles en la ventana de actualización. Por ejemplo, si la ventana de actualización es de tres días y ejecutas la transferencia de datos por primera vez, BigQuery Data Transfer Service recuperará todos los datos de origen en un plazo de tres días.
Los periodos de actualización se asignan al campo de la API TransferConfig.data_refresh_window_days
.
Para recuperar datos que no estén dentro del periodo de actualización (por ejemplo, datos históricos) o para recuperar datos de interrupciones o brechas en la transferencia, puedes iniciar o programar una reposición.
Limitaciones
- La frecuencia mínima con la que puedes programar una transferencia de datos es de una vez cada 24 horas. De forma predeterminada, una transferencia comienza en el momento en que la creas. Sin embargo, puedes configurar la hora de inicio de la transferencia cuando configures la transferencia.
- BigQuery Data Transfer Service no admite transferencias de datos incrementales durante una transferencia de Google Play. Cuando especifica una fecha para una transferencia de datos, se transfieren todos los datos disponibles de esa fecha.
Antes de empezar
Antes de crear una transferencia de datos de Google Play, debes hacer lo siguiente:
- Comprueba que has completado todas las acciones necesarias para habilitar BigQuery Data Transfer Service.
- Crea un conjunto de datos de BigQuery para almacenar los datos de Google Play.
- Busca tu segmento de Cloud Storage:
- En Google Play Console, haz clic en Descargar informes y selecciona Reseñas, Estadísticas o Financieros.
- Para copiar el ID de tu segmento de Cloud Storage, haz clic en
gs://
. Por ejemplo, en el informe de reseñas, su ID es similar al siguiente:gs://pubsite_prod_rev_01234567890987654321/reviews
Copiar URI de Cloud Storage.
El ID de tu segmento empieza por - Para transferir los datos de Google Play, solo tienes que copiar el ID único que se encuentra entre
gs://
y/reviews
:pubsite_prod_rev_01234567890987654321
- Si quieres configurar notificaciones de ejecuciones de transferencias para Pub/Sub, debes tener permisos de
pubsub.topics.setIamPolicy
. No se necesitan permisos de Pub/Sub si solo configura notificaciones por correo electrónico. Para obtener más información, consulta el artículo sobre las notificaciones de ejecución de BigQuery Data Transfer Service.
Permisos obligatorios
BigQuery asegúrate de que la persona que crea la transferencia de datos tenga los siguientes permisos en BigQuery:
- Permisos de
bigquery.transfers.update
para crear la transferencia de datos - Permisos
bigquery.datasets.get
ybigquery.datasets.update
en el conjunto de datos de destino
El rol predefinido de gestión de identidades y accesos
bigquery.admin
incluye los permisosbigquery.transfers.update
,bigquery.datasets.update
ybigquery.datasets.get
. Para obtener más información sobre los roles de gestión de identidades y accesos en BigQuery Data Transfer Service, consulta Control de acceso.- Permisos de
Google Play: asegúrate de tener los siguientes permisos en Google Play:
- Debes tener acceso a los informes en Google Play Console.
El equipo de Google Cloud NO puede generar ni conceder acceso a archivos de Google Play en tu nombre. Consulta cómo ponerte en contacto con el equipo de Asistencia de Google Play para obtener ayuda con el acceso a los archivos de Google Play.
Configurar una transferencia de Google Play
Para configurar una transferencia de datos de Google Play, necesitas lo siguiente:
- Segmento de Cloud Storage. Los pasos para localizar tu segmento de Cloud Storage se describen en la sección Antes de empezar.
Tu segmento de Cloud Storage empieza por
pubsite_prod_rev
. Por ejemplo:pubsite_prod_rev_01234567890987654321
. - Sufijo de tabla: nombre descriptivo de todas las fuentes de datos que se cargan en el mismo conjunto de datos. El sufijo se usa para evitar que las transferencias independientes escriban en las mismas tablas. El sufijo de la tabla debe ser único en todas las transferencias que carguen datos en el mismo conjunto de datos, y debe ser corto para minimizar la longitud del nombre de la tabla resultante.
Para configurar una transferencia de datos de Google Play, sigue estos pasos:
Consola
Ve a la página Transferencias de datos de la Google Cloud consola.
Haz clic en
Crear transferencia.En la página Crear transferencia, haz lo siguiente:
En la sección Tipo de fuente, en Fuente, elige Google Play.
En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos; por ejemplo,
My Transfer
. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si necesitas modificarla más adelante.En la sección Opciones de programación:
- En Frecuencia de repetición, elige una opción para determinar la frecuencia con la que se realizará la transferencia de datos. Si seleccionas Días, indica una hora válida en UTC.
- Si procede, selecciona Empezar ahora o Empezar a una hora determinada y proporciona una fecha de inicio y un tiempo de ejecución.
En la sección Configuración de destino, en Conjunto de datos de destino, elija el conjunto de datos que haya creado para almacenar sus datos.
En la sección Detalles de la fuente de datos:
- En Segmento de Cloud Storage, introduce el ID de tu segmento de Cloud Storage.
- En Sufijo de tabla, introduce un sufijo, como
MT
(paraMy Transfer
).
En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto Google Cloud . Puede asociar una cuenta de servicio a su transferencia de datos en lugar de usar sus credenciales de usuario. Para obtener más información sobre cómo usar cuentas de servicio con transferencias de datos, consulta el artículo Usar cuentas de servicio.
- Si has iniciado sesión con una identidad federada, necesitas una cuenta de servicio para crear una transferencia de datos. Si has iniciado sesión con una cuenta de Google, no es obligatorio tener una cuenta de servicio para la transferencia.
- La cuenta de servicio debe tener los permisos necesarios.
(Opcional) En la sección Opciones de notificación:
- Haz clic en el interruptor para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de las transferencias recibirá una notificación por correo cuando falle una ejecución de transferencia.
- En Selecciona un tema de Pub/Sub, elige el nombre del tema o haz clic en Crear un tema. Esta opción configura las notificaciones de Pub/Sub sobre la transferencia.
Haz clic en Guardar.
bq
Introduce el comando bq mk
y proporciona la marca de creación de transferencia —
--transfer_config
. También se necesitan las siguientes marcas:
--target_dataset
--display_name
--params
--data_source
bq mk \ --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source --service_account_name=service_account_name
Donde:
- project_id es el ID del proyecto. Si no se especifica
--project_id
, se usa el proyecto predeterminado. - dataset es el conjunto de datos de destino de la configuración de transferencia.
- name es el nombre visible de la configuración de transferencia. El nombre de la transferencia de datos puede ser cualquier valor que te permita identificar la transferencia si necesitas modificarla más adelante.
- parameters contiene los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo:
--params='{"param":"param_value"}'
. En el caso de Google Play, debe proporcionar los parámetrosbucket
ytable_suffix
.bucket
es el bucket de Cloud Storage que contiene tus archivos de informes de Google Play. - data_source es la fuente de datos:
play
. - service_account_name es el nombre de la cuenta de servicio que se usa para autenticar la transferencia de datos. La cuenta de servicio debe ser propiedad del mismo
project_id
que se usó para crear la transferencia y debe tener todos los permisos necesarios.
Por ejemplo, el siguiente comando crea una transferencia de datos de Google Play llamada My
Transfer
con el segmento de Cloud Storage pubsite_prod_rev_01234567890987654321
y el conjunto de datos de destino mydataset
. La transferencia de datos se crea en el proyecto predeterminado:
bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"bucket":"pubsite_prod_rev_01234567890987654321","table_suffix":"MT"}' \
--data_source=play
La primera vez que ejecutes el comando, recibirás un mensaje como el siguiente:
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
Sigue las instrucciones del mensaje y pega el código de autenticación en la línea de comandos.
API
Usa el método projects.locations.transferConfigs.create
y proporciona una instancia del recurso TransferConfig
.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Solucionar problemas de configuración de transferencias de Google Play
Si tienes problemas para configurar la transferencia de datos, consulta el artículo Solucionar problemas con la configuración de transferencias de BigQuery Data Transfer Service.
Consultar tus datos
Cuando tus datos se transfieren a BigQuery, se escriben en tablas con particiones por hora de ingestión. Para obtener más información, consulta el artículo Introducción a las tablas particionadas.
Si consultas tus tablas directamente en lugar de usar las vistas generadas automáticamente, debes usar la pseudocolumna _PARTITIONTIME
en tu consulta. Para obtener más información, consulta Consultar tablas con particiones.
Precios
Para obtener información sobre los precios de la transferencia de datos de Google Play, consulta la página Precios.
Cuando se transfieren los datos a BigQuery, se aplica el precio estándar de este servicio para las consultas y el almacenamiento.
Siguientes pasos
- Para ver cómo se transfieren tus informes de Google Play a BigQuery, consulta Transformaciones de informes de Google Play.
- Para obtener una descripción general de BigQuery Data Transfer Service, consulta el artículo Introducción a BigQuery Data Transfer Service.
- Para obtener información sobre cómo usar las transferencias, como obtener información sobre una configuración de transferencia, enumerar configuraciones de transferencia y ver el historial de ejecuciones de una transferencia, consulta Trabajar con transferencias.