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.

Spark lee todas las tablas desde MSSQL y luego aplica una consulta SQL.

Tengo configurado un clúster de Spark 3. Tengo algunos datos en SQL Server y su tamaño es de aproximadamente 100 GB.
Tengo que realizar diferentes consultas en estos datos desde el clúster de Spark.
Me he conectado a SQL Server desde Spark a través de JDBC y he ejecutado una consulta de muestra. Ahora, en lugar de ejecutar la consulta en SQL Server, quiero ejecutar la consulta después de mover/copiar los datos al clúster de Spark (ya que SQL Server está tardando demasiado tiempo, por eso estamos usando Spark). Hay alrededor de 10 tablas en la base de datos.

¿Cuáles son las posibles formas de lograr esto?

Si ejecuto directamente la consulta desde Spark a SQL Server, entonces lleva mucho tiempo ya que es un cuello de botella (se ejecuta en un sistema).
¿Hay alguna forma mejor para hacer esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay algunas formas posibles de lograr esto:

    1. Apache Sqoop: Puede utilizar Apache Sqoop para importar datos desde un servidor SQL a Hadoop Distributed File System (HDFS) y luego realizar consultas sobre estos datos en Spark. Sqoop es una herramienta diseñada para transferir eficientemente datos a granel entre Apache Hadoop y almacenes de datos estructurados como bases de datos relacionales, almacenes de datos empresariales y sistemas NoSQL.
    2. Apache NiFi: Otra opción es utilizar Apache NiFi para mover los datos desde el servidor SQL al clúster de Spark. Apache NiFi es una potente herramienta de ingestión de datos que admite la transferencia de datos entre sistemas de todo tipo, incluidas bases de datos relacionales como SQL Server y Apache Spark.

    3. Apache Kafka: También puede utilizar Apache Kafka para enviar los datos desde bases de datos como SQL Server al clúster de Spark en tiempo real. Kafka es una plataforma de transmisión distribuida que se puede utilizar para construir canalizaciones de datos en tiempo real y aplicaciones de transmisión.

    Una vez que los datos se hayan movido al clúster de Spark, hay algunas formas posibles de realizar consultas sobre estos datos:

    1. Spark SQL: Puede utilizar Spark SQL para consultar los datos almacenados en Spark. Spark SQL es un módulo de Spark para el procesamiento de datos estructurados que le permite consultar datos utilizando SQL.

    2. Spark DataFrame API: Otra opción es utilizar la API de Spark DataFrame para realizar consultas sobre los datos. Un DataFrame es una colección distribuida de datos que le permite consultar y manipular los datos utilizando una interfaz similar a SQL.

    3. Spark RDD API: También puede utilizar la API de Spark RDD para realizar consultas sobre los datos. RDD (Resilient Distributed Datasets) es una estructura de datos fundamental en Spark que le permite realizar cálculos en memoria sobre datos distribuidos. Sin embargo, este enfoque es menos eficiente que Spark SQL y Spark DataFrame API.

Comments are closed.