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 realizar un muestreo aleatorio de filas en el SQL Pool sin servidor de Synapse Analytics?

¿Existe alguna forma en SQL de tomar una muestra aleatoria de N filas (o del M% si es necesario) de una fuente de datos externa vinculada utilizando el Azure Synapse Analytics serverless SQL pool?

Las funciones criptográficas no están disponibles en el serverless SQL pool, por lo tanto, básicamente no puedo utilizar RAND() o CHECKSUM(NEWID()), por ejemplo, para definir una condición para filtrar las filas comparando con el valor deseado de N (o M):

La función ‘RAND’ no es compatible.

Puedo utilizar HASHBYTES en un campo de mi fuente de datos externa, pero mi tabla no contiene un ID único por fila:


SELECT title, director, HASHBYTES('sha2_256', title)
FROM external_table

Idealmente, el muestreo debería ser estadísticamente sólido, en lugar de depender de algún detalle de implementación de la base de datos (como lo haría TABLESAMPLE, que de todos modos tampoco está disponible en el serverless pool).

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, en el grupo de SQL sin servidor de Azure Synapse Analytics, actualmente no hay un método directo o integrado para tomar una muestra aleatoria de N filas o M% de una fuente de datos externa vinculada de manera estadísticamente confiable. El uso de funciones criptográficas, como RAND() o CHECKSUM(NEWID()), para lograr esto no es posible ya que estas funciones no son compatibles en el grupo de SQL sin servidor.

    Sin embargo, puede utilizar HASHBYTES en un campo de su fuente de datos externa para crear un hash para cada fila. Sin embargo, sin tener un ID único para cada fila, sería desafiante crear una muestra estadísticamente confiable. No obstante, aún puede utilizar el valor de hash como base para filtrar utilizando una declaración de condición que lo compara con un valor calculado para mantener el número de filas resultantes dentro del rango deseado.

    En resumen, aunque es posible utilizar HASHBYTES en un campo de la fuente de datos externa, no hay un método integrado en el grupo de SQL sin servidor de Azure Synapse Analytics que permita tomar una muestra aleatoria estadísticamente confiable de N filas o M% de una fuente de datos externa vinculada.

Comments are closed.