stringtranslate.com

Sawzall (язык программирования)

Sawzall — это процедурный предметно-ориентированный язык программирования , используемый Google для обработки большого количества отдельных записей журнала . Sawzall был впервые описан в 2003 году [1] , а среда выполнения szl была открыта в августе 2010 года. [2] Однако, поскольку агрегаторы таблиц MapReduce не были выпущены, [3] среда выполнения с открытым исходным кодом бесполезна для больших масштабируемый анализ данных нескольких готовых файлов журналов. Sawzall был заменен на Lingo (логи в Go ) для большинства целей в Google. [4]

Мотивация

Журналы сервера Google хранятся в виде больших коллекций записей ( буферов протокола ), которые распределены по множеству дисков внутри GFS . Чтобы выполнять вычисления с использованием журналов, инженеры могут писать программы MapReduce на C++ или Java. Программы MapReduce требуют компиляции и могут быть более подробными, чем необходимо, поэтому написание программы для анализа журналов может занять много времени. Чтобы упростить написание быстрых сценариев, Роб Пайк и др. разработал язык Sawzall. Сценарий Sawzall выполняется на этапе Map в MapReduce и «выдает» значения в таблицы. Затем на этапе сокращения (о котором автору сценария не нужно беспокоиться) таблицы из нескольких запусков объединяются в единый набор таблиц.

В настоящее время только среда выполнения языка (которая запускает сценарий Sawzall один раз для одного ввода) имеет открытый исходный код; вспомогательная программа, построенная на MapReduce, не была выпущена. [3]

Функции

Некоторые интересные функции включают в себя:

В конструкции Sawzall предпочтение отдается эффективности и простоте двигателя, а не мощности:

Код Созалла

Эта полная программа Sawzall прочитает входные данные и выдаст три результата: количество записей, сумму значений и сумму квадратов значений.

count: таблица суммы целых чисел;итого: таблица суммы резерва;sum_of_squares: таблица суммы с плавающей запятой;х: поплавок = ввод;количество выбросов <- 1;общее количество выбросов <- x;испускать sum_of_squares <- x * x;

Смотрите также

Рекомендации

  1. ^ Роб Пайк, Шон Дорвард, Роберт Гриземер, Шон Куинлан. Интерпретация данных: параллельный анализ с Sawzall
  2. ^ Проект с открытым исходным кодом Sawzall в Google Code.
  3. ^ ab Обсуждение того, какие части Sawzall имеют открытый исходный код.
  4. ^ «Замена Созалла». 04.12.2015 . Проверено 18 июня 2018 г.

дальнейшее чтение

Внешние ссылки