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.

¿Cómo leer datos de una tabla de otro proyecto de una región diferente?

Tenemos una tabla FACT1 del proyecto1 ubicada en la región de EE.UU. y una tabla FACT2 del proyecto2 ubicada en la región de Asia.

Deseamos hacer una unión/join entre estas dos tablas y persistir los resultados en una tabla del proyecto2. Sin embargo, GCP no permite realizar consultas entre tablas ubicadas en diferentes regiones.

  1. ¿Cuál es el enfoque recomendado para este caso?
  2. Si deseamos leer los datos de FACT1 (EE.UU.) y replicarlos en una tabla persistente del proyecto2 (FACT1_COPY), ¿cómo podemos configurar un servicio de sincronización en GCP?
  3. ¿Cómo funcionará el proceso de sincronización? ¿Se sincronizarán solamente los registros nuevos o se transferirá toda la tabla como carga truncada? ¿Existen implicaciones de costos? Nota: No conocemos los detalles de implementación del otro proyecto y simplemente queremos leer los datos tal como están. La tabla FACT tiene aproximadamente 30 GB de datos.

Ruego su consejo sobre la arquitectura correcta a seguir.

Gracias,
Kiran

Tags:  , , , ,

Answer

  1. Avatar for davy.ai
    1. El enfoque recomendado ideal es utilizar un servicio de replicación de datos como Google Cloud Dataflow o Apache Beam para copiar los datos de la tabla FACT1 a la tabla FACT1 en Project2. De esta manera, la tabla estará disponible en la misma región y se podrá consultar para su procesamiento adicional.
    2. Para configurar un servicio de sincronización en GCP, puedes utilizar Cloud Functions, Cloud Scheduler y Cloud Storage. Aquí tienes un resumen general de los pasos:

    • Configura una Cloud Function que lea datos de la tabla FACT1 según un horario (por ejemplo, utilizando Cloud Scheduler) y los escriba en un archivo en Cloud Storage. Puedes utilizar la biblioteca de clientes de Datastore para leer datos de la tabla FACT1.
    • Una vez que los datos estén escritos en Cloud Storage, puedes utilizar un trabajo de Dataflow para leer desde el archivo y escribir en la tabla FACT1_COPY en Project2. Puedes utilizar el conector Cloud Storage TextIO y el conector Cloud Datastore para leer y escribir datos, respectivamente.
    • Puedes configurar el trabajo de Dataflow para que se ejecute según un horario utilizando Cloud Scheduler u otra herramienta de programación. También puedes configurar monitorización y alertas para recibir notificaciones si el trabajo falla o si hay algún problema con el proceso de sincronización.
    1. El proceso de sincronización transferirá todos los registros de FACT1 a FACT1_COPY, no sólo los nuevos registros. Sin embargo, puedes optimizar el proceso ejecutando el trabajo de sincronización de forma incremental, es decir, sincronizando sólo los registros que se hayan añadido o modificado desde la última sincronización. De esta manera, puedes minimizar la cantidad de datos transferidos y reducir los costos. Puedes utilizar la API de trabajos de Dataflow o la API de plantillas de Dataflow para configurar trabajos de sincronización incremental.

    Nota: El costo del proceso de sincronización dependerá de la frecuencia de la sincronización, el tamaño de los datos y los recursos utilizados por el trabajo de Dataflow. Puedes utilizar la Calculadora de precios de GCP para estimar los costos.

Comments are closed.