es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Copiar datos de la base de datos de Firestore a BigQuery usando la Terminal de Cloud Shell.

¿Alguien sabe cómo puedo copiar/transferir manualmente datos de la base de datos Firestore a Bigquery utilizando Cloud Shell Terminal?

Lo hice en el pasado, pero no puedo encontrar la documentación/video que utilicé. Veo mucho que dice que una vez que Bigquery está conectado a Firebase, debería ser automático, pero el mío no lo es.

Cuando ejecuté código en el Terminal de Cloud Shell para extraer datos de Firebase, la colección se copió como una tabla en un conjunto de datos de Bigquery. Se crearon dos tablas y se llamaron “raw_latest” y “raw_changelog”.

No estoy seguro de cómo transferir otra colección ahora.
Específicamente, necesito transferir datos de una subcolección en la base de datos Firestore.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible copiar/transferir datos manualmente desde la base de datos de Firestore a BigQuery utilizando la Terminal de Cloud Shell. Aquí están los pasos a seguir:

    1. Asegúrese de que su base de datos de Firestore esté conectada a BigQuery. Puede verificar esto en la consola de Firebase yendo a su proyecto, luego haciendo clic en las tres líneas horizontales en la esquina superior izquierda, seleccionando “Configuración del proyecto” y luego “Integraciones”. Si no está conectado, siga los pasos para conectarlo.
    2. Abra la Terminal de Cloud Shell y autentíquese con su cuenta de Google si es necesario.

    3. Navegue hasta el directorio raíz ingresando el comando cd /.

    4. Cree un nuevo directorio ingresando el comando mkdir firestore-to-bigquery.

    5. Navegue hasta el nuevo directorio ingresando el comando cd firestore-to-bigquery.

    6. Ingrese el comando npm init -y para crear un nuevo proyecto Node.js con las configuraciones predeterminadas.

    7. Instale las dependencias necesarias ingresando los siguientes comandos:

    npm install --save firebase-admin
    npm install --save @google-cloud/bigquery
    
    1. Cree un nuevo archivo JavaScript ingresando el comando nano transfer.js.

    2. Copie y pegue el siguiente código en el archivo:

    const admin = require('firebase-admin');
    const {BigQuery} = require('@google-cloud/bigquery');
    
    // Inicializar Firebase
    admin.initializeApp({
      projectId: '<id de="" su="" proyecto="">',
    });
    
    // Inicializar BigQuery
    const bigquery = new BigQuery();
    
    // Definir colección de Firestore y tabla de BigQuery
    const collectionPath = '<ruta a="" la="" colección="">';
    const tableId = '<nombre de="" la="" tabla="" de="" bigquery="">';
    
    // Obtener documentos de Firestore
    admin.firestore().collection(collectionPath).get()
      .then(querySnapshot => {
        // Convertir documentos en un arreglo JSON
        const rows = querySnapshot.docs.map(doc => doc.data());
    
        // Cargar datos en BigQuery
        bigquery.dataset('<nombre del="" conjunto="" de="" datos="" de="" bigquery="">').table(tableId).insert(rows)
          .then(() => console.log('Inserción exitosa'))
          .catch(err => console.error('ERROR:', err));
      })
      .catch(err => console.error('ERROR:', err));
    
    1. Reemplace <id de="" su="" proyecto="">, <ruta a="" la="" colección="">, <nombre de="" la="" tabla="" de="" bigquery=""> y <nombre del="" conjunto="" de="" datos="" de="" bigquery=""> con los valores apropiados para su proyecto.

    2. Guarde el archivo presionando Ctrl + X, luego Y y luego Enter.

    3. Ejecute el archivo ingresando el comando node transfer.js.

    Esto debería transferir los datos de su subcolección de Firestore a BigQuery. Si encuentra algún problema o error, consulte la documentación de Firebase y BigQuery o busque ayuda adicional de un experto en IT.

Comments are closed.