Jump to content

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

Созалл
Разработчик Google
Впервые появился 2003 год ; 21 год назад ( 2003 )
Лицензия Лицензия Апач 2.0
Веб-сайт код .Google /архив /п /сл /

Sawzall — это процедурный предметно-ориентированный язык программирования , используемый Google для обработки большого количества отдельных записей журнала . Созалл был впервые описан в 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 имеет один вход (запись журнала) и может выводить данные только путем отправки в таблицы. Скрипт не может иметь других побочных эффектов.
  • Скрипт может определить любое количество выходных таблиц. Типы таблиц включают в себя:
    • collection сохраняет каждое выданное значение
    • sum сохраняет сумму каждого излучаемого значения
    • maximum(n) сохраняет только самые высокие n значений заданного веса.
  • Кроме того, существует несколько типов статистических таблиц, которые дают неточные результаты. Чем выше параметр n, тем точнее оценки.
    • sample(n) дает случайную выборку из n значений из всех выданных значений
    • quantile(n) вычисляет кумулятивное распределение вероятностей заданных чисел.
    • top(n) дает n значений, которые, вероятно, являются наиболее частыми из выдаваемых значений.
    • unique(n) оценивает количество выданных уникальных значений.

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

Код Sawzall [ править ]

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

count: table sum of int;
total: table sum of float;
sum_of_squares: table sum of float;
x: float = input;
emit count <- 1;
emit total <- x;
emit sum_of_squares <- x * x;

См. также [ править ]

Ссылки [ править ]

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

Дальнейшее чтение [ править ]

  • С. Гемават, Х. Гобиофф, С.-Т. Люнг, Файловая система Google, в: 19-й симпозиум ACM по принципам операционных систем, материалы, 17 ACM Press, 2003, стр. 29–43.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: da98a890d3cc404f889e2dd6dca3beb1__1698329520
URL1:https://arc.ask3.ru/arc/aa/da/b1/da98a890d3cc404f889e2dd6dca3beb1.html
Заголовок, (Title) документа по адресу, URL1:
Sawzall (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)