Todos los productos
Search
Centro de documentos

Tablestore:Descripción general de Spark/SparkSQL

Última actualización: Sep 09, 2026

Cuando utiliza el motor de cómputo Spark para acceder a Tablestore, puede usar E-MapReduce SQL o la programación con DataFrame para ejecutar cálculos complejos y analizar sus datos de manera eficiente.

Funciones

Para el cómputo por lotes, Tablestore on Spark ofrece las siguientes funciones principales de optimización:

  • Selección de índices: elegir el índice adecuado es clave para consultar los datos de forma eficiente. Elija el índice que mejor coincida con sus condiciones de filtro para mejorar la eficiencia de las consultas. Tablestore proporciona índices secundarios globales e índices de búsqueda.

    Nota

    Para obtener más información sobre los índices secundarios globales y los índices de búsqueda, consulte A deep dive into massive structured data storage technology: Tablestore storage and indexing engines.

  • Poda de particiones de tabla: esta función compara las particiones lógicas (Splits) con las condiciones de filtro y descarta los Splits no válidos. De este modo, se reduce la cantidad de datos transferidos desde el servidor.

  • Descenso de proyecciones y filtros: esta función envía las columnas de proyección y las condiciones de filtro al servidor. Así se disminuye el volumen de datos transferidos desde cada partición.

  • Especificación dinámica del tamaño de Split: ajuste el volumen de datos y la cantidad de particiones en cada partición lógica (Split). Cada Split se asocia a una partición de Resilient Distributed Dataset (RDD), lo cual acelera la ejecución de las tareas de Spark.

    Nota

    Utilice la API ComputeSplitsBySize para obtener las particiones lógicas (Splits). Esta API divide lógicamente una tabla completa en Splits de un tamaño aproximado especificado y devuelve los puntos de división junto con las sugerencias de ubicación de dichos Splits. Los motores de cómputo suelen utilizar esta información para planificar la ejecución, como la planificación de la concurrencia.

Para el cómputo de flujos, Tablestore on Spark emplea la tecnología Data Change Capture (CDC), basada en Tunnel Service, para implementar el consumo y el cálculo de flujos en minilotes dentro de Spark. También ofrece semántica de consistencia de tipo at-least-once. En el cómputo de flujos, cada partición se asocia a una partición de RDD. Al ampliar las particiones de la tabla, se logra un escalamiento lineal del rendimiento de los datos.

Métodos de uso

Según su escenario, elija entre E-MapReduce SQL y la programación con DataFrame para acceder a Tablestore mediante Spark.

  • Método E-MapReduce SQL

    Este método usa instrucciones SQL estándar para operar y acceder a los datos del negocio. Es fácil de usar y permite migrar sin problemas la lógica de negocio existente.

  • Método DataFrame

    Este método requiere conocimientos de programación. Sin embargo, le permite combinar componentes para implementar lógica de negocio compleja. Resulta ideal para escenarios complejos y flexibles.

Métodos de acceso a datos

Tablestore ofrece dos métodos de acceso a datos para el cómputo por lotes de Spark: la consulta KV en tablas de datos o índices secundarios globales, y la consulta de índices de búsqueda. Estos métodos admiten lecturas y escrituras rápidas de grandes volúmenes de datos estructurados, además de brindar amplias capacidades de consulta y análisis.

A continuación se describen las diferencias entre ambos métodos de acceso a datos:

  • La consulta KV resulta eficiente cuando las condiciones de filtro se aplican a columnas de clave principal. No obstante, no es adecuada para escenarios donde dichas condiciones cambian con frecuencia o involucran muchas columnas que no son de clave principal. Este método no admite consultas geográficas.

  • La consulta de índices de búsqueda es apropiada para los siguientes escenarios de acceso a datos:

    Nota

    Los índices de búsqueda se basan en índices invertidos y almacenamiento columnar. Permiten resolver problemas de consulta complejos en big data y ofrecen funciones de consulta y análisis similares a las de Elasticsearch, como full-text search, fuzzy search, geo queries, and statistical aggregation.

    • Escenarios de análisis de datos en tiempo real con volúmenes pequeños de datos y requisitos estrictos de latencia.

    • Las condiciones de filtro involucran muchas columnas que no son de clave principal, y estas columnas no forman parte de las claves principales del índice secundario global ni de la tabla de datos.

    • Las condiciones de filtro tienen alta selectividad. Una condición sobre una sola columna elimina la mayor parte de los datos.

      Por ejemplo, en select * from table where col = 1000;, col es una columna que no pertenece a la clave principal, y la condición col = 1000 filtra la mayor parte de los datos.

    • Las condiciones de consulta incluyen una consulta geográfica.

La siguiente imagen utiliza la instrucción SQL select * from table where col1 like 'A%' or col2 = 'a'; para ilustrar los dos métodos de consulta.

  • Al acceder a los datos mediante un índice de búsqueda, el índice de col1 localiza una fila donde col1 es 'Ali%': pk1 = 1. El índice de col2 encuentra dos filas donde col2 es 'a': pk1 = 1 y pk1 = 2. Después, se aplica una operación de unión a los resultados intermedios para obtener el resultado final que cumple las condiciones: pk1 = 1, col1 = 'Alibaba Cloud', col2 = 'a'.

  • Al acceder a los datos con el método de consulta KV, la consulta se ejecuta directamente sobre la tabla de datos de Tablestore. Dicha tabla solo se puede consultar por clave principal. Si las columnas de filtro en la instrucción SQL no corresponden a claves principales de la tabla de datos, se requiere un escaneo completo de la tabla.

    Como col1 no es una clave principal de la tabla de datos, Tablestore ejecuta un escaneo completo para encontrar la fila donde col1 es 'Ali%'. Puesto que col2 tampoco es clave principal, Tablestore realiza otro escaneo completo para ubicar las dos filas donde col2 es 'a'. Posteriormente, se aplica una operación de unión a los resultados intermedios.

    En este caso, también puede crear una tabla de índices con col1 y col2 como claves principales para admitir esta consulta. Sin embargo, este método es menos flexible.