muestreo aleatorio colmena - solicitud de muestreo

fondo

Será mucho tiempo en el análisis de grandes cantidades de datos y datos de modelos tareas, llevado a cabo a menudo por el importe total de la minería de datos y análisis de racimo ocupación de los recursos, en circunstancias normales 只需要抽取一小部分数据进行分析及建模操作
Colmena ofrece 数据取样(SAMPLING)funcionalidad, los datos pueden ser ensayados de acuerdo a ciertas reglas, Actualmente es compatible con 数据块抽样, 分桶抽样y 随机抽样, como se muestra a continuación:

  1. El muestreo aleatorio (RAND () función)
  • El uso de rand()函数un muestreo aleatorio, las muestras de datos devueltos límite palabras clave de restricción, en el que la función rand () antes de los distribute和sort关键字datos puede estar en el asignador y fases reductor están distribuidos al azar para asegurar los
    Ejemplos: Tabla app.table_name seleccionados al azar y la fecha es el día (DateKey = '2018 -11-14 ') de datos 100
 select * from app.table_name where datekey='2018-11-14' distribute by rand() sort by rand() limit 100;  
  • Diez millones de datos en orden a modo de una muestra aleatoria lleva más tiempo (no deseable)
    Ejemplo: 100 tabla de datos seleccionado al azar
 select * from app.table_name order by rand() limit 100;

2, el muestreo de bloque de datos (TABLESAMPLE () función)

1) TABLESAMPLE (n ciento) los datos de tabla colmena 大小按比例para extraer los datos, y almacena la nueva colmena a la mesa. Tales como: la extracción de 10% de los datos de la tabla de la colmena originales de manera que permite Colmena N filas de datos aleatorio, el porcentaje de la cantidad total de datos (n porcentaje) o N bytes de datos.
sintaxis:

SELECT * FROM <Table_Name> TABLESAMPLE(N PERCENT|ByteLengthLiteral|N ROWS) s;

(Nota: descubierto durante las pruebas, instrucciones select con donde las condiciones no pueden y no soporta sub-consultas se pueden resolver mediante la creación de una nueva tabla de muestreo al azar central o el uso)

create table xxx_new as select * from xxx tablesample(10 percent) 

2) TABLESAMPLE (n M) del tamaño especificado de datos de la muestra, en unidades de M.
3) TABLESAMPLE (n filas) especificado número de líneas de datos de la muestra, donde n representa cada uno de los n-ésima fila se toman datos de los mapas de tareas, mapa número colmena por un acuse de recibo de consulta de tabla simple (Palabras clave: número de mapeadores: x)

3, el muestreo de bloque de datos (muestreo Block)

Ejemplo: el porcentaje en volumen de muestras de datos

SELECT name FROM employees TABLESAMPLE(10 PERCENT) a;

Ejemplo: de acuerdo con el tamaño de los datos de la muestra

SELECT name FROM employees TABLESAMPLE(1M) a;

Ejemplo: de acuerdo con el número de filas de muestras de datos

SELECT * FROM source TABLESAMPLE(10 ROWS);

3, la muestra de la cubeta (muestreo tabla Bucket)

La colmena es en realidad cubo de tallado 某一个字段Hash取模, el cubo en los datos designados, tales como en el table_1 tabla de ID en la tina 100, el algoritmo es de hash (id)% 100, de modo que, hachís (id) = 0 datos es 100% primero en un cubo, ficha de hash (id)% 100 = 1 se coloca en la segunda cuba. La declaración clave crea una sub-cubeta de la tabla es: GRUPO POR comunicado.
Sintaxis barril puntos de muestreo:
la TABLESAMPLE (. X OUT DE BUCKET Y [colName El la ON])
, donde x es el número a ser muestreado barriles, numeradas de la bañera 1, columnas nombrecol representa muestras, y representa el número de cubetas.
Por ejemplo: El primer cubo en la Tabla 10 se dividieron aleatoriamente en grupos, en el que la extracción de datos

select * from table_01 tablesample(bucket 1 out of 10 on rand())

Este es el mejor modo de realización de la cubeta de la tabla de muestras. función RAND () se puede utilizar para muestrear toda la fila. Si las columnas de muestra utilizando tanto con clústeres, sentencia use TABLESAMPLE más eficiente.
sintaxis:

SELECT * FROM <Table_Name> TABLESAMPLE(BUCKET <specified bucket number to sample> OUT OF <total number of buckets> ON [colname|RAND()]) table_alias;

Ejemplo:

SELECT * FROM employees TABLESAMPLE(BUCKET 2 OUT OF 4 ON RAND()) table_alias;
SELECT * FROM xxxxxx_uid_online_buck TABLESAMPLE(bucket 1 out of 2 on uid); 

4, resumen

Y toma de muestras de la polimerización, la función particular de polimerización, es el principal método de tratamiento de datos en el amplio procesamiento de datos. Por las condiciones de polimerización y la función de una combinación que consta de procesamiento básico de datos o para completar todos los paquetes requeridos, muestreo aleatorio, muestreo del bloque de datos, los puntos de muestreo son tres cubos de datos más comunes método de muestreo.

Publicados 175 artículos originales · ganado elogios 76 · Vistas de 230.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_29232943/article/details/104636172
Recomendado
Clasificación