stringtranslate.com

Sawzall (lenguaje de programación)

Sawzall es un lenguaje de programación específico de dominio procedimental , utilizado por Google para procesar grandes cantidades de registros individuales . Sawzall se describió por primera vez en 2003, [1] y el entorno de ejecución szl se convirtió en código abierto en agosto de 2010. [2] Sin embargo, dado que los agregadores de tablas de MapReduce no se han publicado, [3] el entorno de ejecución de código abierto no es útil para el análisis de datos a gran escala de múltiples archivos de registro listos para usar. Sawzall ha sido reemplazado por Lingo (registros en Go ) para la mayoría de los propósitos dentro de Google. [4]

Motivación

Los registros del servidor de Google se almacenan como grandes colecciones de registros ( buffers de protocolo ) que se dividen en varios discos dentro de GFS . Para realizar cálculos que involucren los registros, los ingenieros pueden escribir programas MapReduce en C++ o Java. Los programas MapReduce deben compilarse y pueden ser más detallados de lo necesario, por lo que escribir un programa para analizar los registros puede llevar mucho tiempo. Para facilitar la escritura de scripts rápidos, Rob Pike et al. desarrollaron el lenguaje Sawzall. Un script Sawzall se ejecuta dentro de la fase Map de un MapReduce y "emite" valores a las tablas. Luego, la fase Reduce (de la que el escritor del script no tiene que preocuparse) agrega las tablas de múltiples ejecuciones en un solo conjunto de tablas.

Actualmente, solo el entorno de ejecución del lenguaje (que ejecuta un script Sawzall una vez sobre una única entrada) ha sido publicado en código abierto; el programa de soporte creado en MapReduce no ha sido publicado. [3]

Características

Algunas características interesantes incluyen:

El diseño de Sawzall prioriza la eficiencia y la simplicidad del motor sobre la potencia:

Código de sierra de vaivén

Este programa completo de Sawzall leerá la entrada y producirá tres resultados: el número de registros, la suma de los valores y la suma de los cuadrados de los valores.

count: suma de la tabla de int;total: suma de la tabla de float;suma_de_cuadrados: suma de la tabla de flotantes;x: float = entrada;número de emisiones <- 1;emitir total <- x;emitir suma_de_cuadrados <- x * x;

Véase también

Referencias

  1. ^ Rob Pike, Sean Dorward, Robert Griesemer, Sean Quinlan. Interpretación de los datos: análisis paralelo con Sawzall
  2. ^ Proyecto de código abierto de Sawzall en Google Code.
  3. ^ ab Discusión sobre qué partes de Sawzall son de código abierto.
  4. ^ "Reemplazo de Sawzall". 2015-12-04 . Consultado el 2018-06-18 .

Lectura adicional

Enlaces externos