Athrun Data Intelligence


Portar desde BigQuery de Google Cloud a Abundancia ClickHouse en AWS permite a las empresas usar la velocidad y la eficiencia de ClickHouse para realizar disección en tiempo auténtico mientras se benefician del entorno escalable y seguro de AWS. Este artículo proporciona una folleto completa para ejecutar una migración de datos directa utilizando Pegamento AWS ETL, destacando las ventajas y mejores prácticas para una transición perfecta.

AWS Glue ETL permite a las organizaciones descubrir, preparar e integrar datos a escalera sin la carga de mandar la infraestructura. Con su conectividad incorporada, Glue puede percibir sin problemas datos de BigQuery de Google Cloud y escribirlos en ClickHouse Cloud en AWS, eliminando la privación de conectores personalizados o scripts de integración complejos. Más allá de la conectividad, Glue asimismo proporciona capacidades avanzadas, como una interfaz visual de creación de ETL, programación de trabajos automatizada y escalamiento sin servidor, lo que permite a los equipos diseñar, monitorear y mandar sus procesos de forma más valioso. Juntas, estas características simplifican la integración de datos, reducen la latencia y ofrecen importantes ahorros de costos, lo que permite migraciones más rápidas y confiables.

Requisitos previos

Ayer de utilizar AWS Glue para integrar datos en ClickHouse Cloud, primero debe configurar el entorno de ClickHouse en AWS. Esto incluye crear y configurar su ClickHouse Cloud en AWS, cerciorarse de que el ataque a la red y los grupos de seguridad estén definidos correctamente y probar que el punto final del clúster sea accesible. Una vez que el entorno de ClickHouse esté despierto, puede usar el conector integrado de AWS Glue para escribir datos sin problemas en ClickHouse Cloud desde fuentes como Google Cloud BigQuery. Puede seguir la futuro sección para completar la configuración.

  1. Configurar ClickHouse Cloud en AWS
    1. Siga el sitio web oficial de ClickHouse para configurar el entorno (recuerde permitir el ataque remoto en el archivo de configuración si usa Clickhouse OSS)
      https://clickhouse.com/docs/get-started/quick-start
  2. Suscríbete al Conector del mercado ClickHouse Glue
    1. Extenso Conectores de pegamento y elige Ir al mercado de AWS
    2. En la registro de conectores del mercado de AWS Glue, ingrese ClickHouse en la mostrador de búsqueda. Entonces elige Conector ClickHouse para AWS Glue
    3. Nominar Ver opciones de operación en la parte superior derecha de la panorama
    4. Revisar Términos y condiciones y elige Aceptar términos
    5. Nominar Continuar a Configuración una vez que esté autorizado
    6. En Siga las instrucciones del proveedor. parte en las instrucciones del conector como se muestra a continuación, elija el enlace de facultad del conector en el paso 3

Configurar el trabajo ETL de AWS Glue para la integración de ClickHouse

AWS Glue permite la migración directa al conectarse con ClickHouse Cloud en AWS a través de conectores integrados, lo que permite operaciones ETL fluidas. En el interior de la consola de Glue, los usuarios pueden configurar trabajos para percibir datos de S3 y escribirlos directamente en ClickHouse Cloud. Con AWS Glue Data Catalog, los datos en S3 se pueden indexar para un procesamiento valioso, mientras que la compatibilidad con PySpark de Glue permite transformaciones de datos complejas, incluidas conversiones de tipos de datos, para cobijar la compatibilidad con el esquema de ClickHouse.

  1. Fiordo AWS Glue en la consola de establecimiento de AWS
    1. Navegue hasta el catálogo de datos y las conexiones
    2. Crear una nueva conexión
  2. Configurar la conexión de BigQuery en Glue
    1. Prepare un entorno de Google Cloud BigQuery
    2. Cree y almacene la esencia de cuenta del servicio de nubarrón de Google (formato JSON) en AWS Secret Manager; puede encontrar los detalles en Conexiones de BigQuery.
    3. El ejemplo de contenido en formato JSON es el futuro:
      {
        "type": "service_account",
        "project_id": "h*********g0",
        "private_key_id": "cc***************81",
        "private_key": "-----BEGIN PRIVATE KEY-----nMI***zEc=n-----END PRIVATE KEY-----n",
        "client_email": "clickhouse-sa@h*********g0.iam.gserviceaccount.com",
        "client_id": "1*********8",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/autómata/v1/metadata/x509/clickhouse-sa%40h*********g0.iam.gserviceaccount.com",
        "universe_domain": "googleapis.com"
      }

      • type: cuenta_servicio.
      • project_id: El ID del esquema GCP.
      • private_key_id: una identificación única para la esencia privada internamente del archivo.
      • private_key: La esencia privada auténtico.
      • client_email: La dirección de correo electrónico de la cuenta de servicio.
      • client_id: un ID de cliente único asociado con la cuenta de servicio.
      • auth_uri, token_uri, auth_provider_x509_cert_url
      • client_x509_cert_url: URL para autenticación e intercambio de tokens con los sistemas de trámite de ataque e identidad de Google.
      • universe_domain: El nombre de dominio de GCP, googleapis.com
    4. Cree una conexión de Google BigQuery en AWS Glue
    5. Otorgue al rol de IAM asociado con su permiso de trabajo de AWS Glue para S3, Secret Manager, servicios de Glue y AmazonEC2ContainerRegistryReadOnly para ingresar a los conectores adquiridos en AWS Marketplace (documento de relato)
  3. Cree una conexión ClickHouse en AWS Glue
    1. Ingresar clickhouse-connection como su nombre de conexión
    2. Nominar Crear conexión y activar conector
  4. Crear un trabajo de pegamento
    1. en el Conectores ver como se muestra a continuación, seleccione conexión-clickhouse y elige crear trabajo
    2. Ingresar bq_to_clickhouse como su nombre de trabajo y configurar gc_connector_role como su función IAM
    3. Configurar Conexión de BigQuery y conexión-clickhouse a la propiedad Conexión
    4. Elige el Guion pestaña y Editar gallardete. Entonces elige Confirmar en el Editar gallardete panorama emergente.
    5. Copie y pegue el futuro código en el editor de secuencias de comandos al que puede consultar el funcionario de Clickhouse. doc
    6. El código fuente es el futuro:
      import sys
      from pyspark.sql import SparkSession
      from awsglue.context import GlueContext
      from awsglue.job import Job
      from awsglue.utils import getResolvedOptions
      
      args = getResolvedOptions(sys.argv, ('JOB_NAME'))
      spark = SparkSession.builder.getOrCreate()
      glueContext = GlueContext(spark.sparkContext)
      job = Job(glueContext)
      job.init(args('JOB_NAME'), args)
      
      connection_options = {
          "connectionName": "Bigquery connection",
          "parentProject": "YOUR_GCP_PROJECT_ID",
          "query": "SELECT * FROM `YOUR_GCP_PROJECT_ID.bq_test_dataset.bq_test_table`",
          "viewsEnabled": "true",
          "materializationDataset": "bq_test_dataset"
      }
      jdbc_url = " jdbc:clickhouse://YOUR_CLICKHOUSE_CONNECTION.us-east-1.aws.clickhouse.cloud:8443/clickhouse_database?ssl=true "
      username = "default"
      password = "YOUR_PASSWORD"
      query = "select * from clickhouse_database.clickhouse_test_table"
      # Add this before writing to test connection
      try:
          # Read from BigQuery with Glue Connection
          print("Reading data from BigQuery...")
          GoogleBigQuery_node1742453400261 = glueContext.create_dynamic_frame.from_options(
              connection_type="bigquery",
              connection_options=connection_options,
              transformation_ctx="GoogleBigQuery_node1742453400261"
          )
          # Convert to DataFrame
          bq_df = GoogleBigQuery_node1742453400261.toDF()
          print("Show data from BigQuery:")
          bq_df.show()
          
          # Write BigQuery Data to Clickhouse with JDBC
          bq_df.write 
          .format("jdbc") 
          .option("driver", 'com.clickhouse.jdbc.ClickHouseDriver') 
          .option("url", jdbc_url) 
          .option("user", username) 
          .option("password", password) 
          .option("dbtable", "clickhouse_test_table") 
          .mode("append") 
          .save()
          
          print("Write BigQuery Data to ClickHouse successfully")
          
          # Read from Clickhouse with JDBC
          reaf_df = (spark.read.format("jdbc")
          .option("driver", 'com.clickhouse.jdbc.ClickHouseDriver')
          .option("url", jdbc_url)
          .option("user", username)
          .option("password", password)
          .option("query", query)
          .option("ssl", "true")
          .load())
          
          print("Show Data from ClickHouse:")
          reaf_df.show()
          
      except Exception as e:
          print(f"ClickHouse connection test failed: {str(e)}")
          raise e
      finally:
          job.commit()

    7. Nominar Racionar y Pasar en la parte superior derecha de la panorama contemporáneo

Pruebas y Acometividad

Las pruebas son cruciales para probar la precisión de los datos y el rendimiento en el nuevo entorno. Una vez completada la migración, ejecute comprobaciones de integridad de los datos para confirmar el recuento de registros y la calidad de los datos en ClickHouse Cloud. La brío del esquema es esencial, ya que cada campo de datos debe alinearse correctamente con el formato de ClickHouse. La ejecución de pruebas comparativas de rendimiento, como consultas de muestra, ayudará a probar que la configuración de ClickHouse ofrece las ganancias de velocidad y eficiencia deseadas.

  1. El esquema y los datos en BigQuery de origen y Clickhouse de destino

  2. Registros de salida de AWS Glue

Depurar

Luego de completar la migración, es importante robar los fortuna no utilizados (como BigQuery para la importación de datos de muestra y fortuna de bases de datos en ClickHouse Cloud) para evitar costos innecesarios. En cuanto a los permisos de IAM, es aconsejable respetar el principio de privilegio imperceptible. Esto implica otorgar a los usuarios y roles solo los permisos necesarios para sus tareas y eliminar permisos innecesarios cuando ya no sean necesarios. Este enfoque progreso la seguridad al minimizar las posibles superficies de amenaza. Por otra parte, revisar los costos y las configuraciones de los trabajos de AWS Glue puede ayudar a identificar oportunidades de optimización para futuras migraciones. Monitorear los costos generales y analizar el uso puede revelar áreas donde las mejoras de código o configuración pueden originar ahorros de costos.

Conclusión

AWS Glue ETL ofrece una alternativa sólida y posible de usar para portar datos de BigQuery a ClickHouse Cloud en AWS. Al utilizar la obra sin servidor de Glue, las organizaciones pueden realizar migraciones de datos que sean eficientes, seguras y rentables. La integración directa con ClickHouse agiliza la transferencia de datos, lo que permite un suspensión rendimiento y flexibilidad. Este enfoque de migración es particularmente adecuado para empresas que buscan mejorar sus capacidades de disección en tiempo auténtico en AWS.


Acerca de los autores

Ray Wang

Ray Wang

Exhalación es arquitecto senior de soluciones en AWS. Con más de 12 abriles de experiencia en la industria de TI, Ray se dedica a crear soluciones modernas en la nubarrón, especialmente en NoSQL, big data, formación automotriz e IA generativa. Como un emprendedor hambriento, aprobó los 12 certificados de AWS para hacer que su campo técnico no solo sea profundo sino amplio. Le encanta percibir y ver películas de ciencia ficción en su tiempo osado.

Robert Chung

Robert Chung

Roberto es un arquitecto de soluciones en AWS con experiencia en tecnologías de infraestructura, datos, inteligencia químico y modernización. Ha apoyado a numerosos clientes de servicios financieros para impulsar la transformación nativa de la nubarrón, avanzar en el disección de datos y acelerar la modernización de mainframe. Su experiencia asimismo se extiende a las prácticas modernas de AI-DLC, que permiten a las empresas innovar más rápido. Con esta experiencia, Robert está aceptablemente equipado para enfrentarse desafíos empresariales complejos y ofrecer soluciones impactantes.

Tomohiro Tanaka

Tomohiro Tanaka

Tomohiro es ingeniero sénior de soporte en la nubarrón en Amazon Web Services (AWS). Le apasiona ayudar a los clientes a utilizar Apache Iceberg para sus lagos de datos en AWS. En su tiempo osado disfruta de una pausa para el café con sus compañeros y de preparar café en casa.

Stanley Chukwuemeke

Stanley Chukwuemeke

stanley es arquitecto de soluciones de socios senior en AWS. Trabaja con socios tecnológicos de AWS para hacer crecer su negocio mediante la creación de soluciones conjuntas de comercialización utilizando datos, disección y servicios de inteligencia químico de AWS. Ha trabajado con datos la decano parte de su carrera y le apasiona la modernización de bases de datos y la táctica de prohijamiento de la nubarrón para ayudar a impulsar iniciativas de modernización empresarial en todas las industrias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *