The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google переименовал ZetaSQL в GoogleSQL

04.02.2026 10:07 (MSK)

Компания Google объявила о переименовании SQL-анализатора ZetaSQL в GoogleSQL. Проект развивает инструментарий для разбора и анализа грамматики, семантики, типов, модели данных и функций для языка SQL и диалекта GoogleSQL. Диалект GoogleSQL примечателен возможностью объединения запросов при помощи неименованных каналов (pipe) и применяется в различных продуктах и сервисах Google, среди которых BigQuery, Spanner, F1, BigTable, Dremel и Procella. Код проекта написан на языке С++ и распространяется под лицензией Apache 2.0.

В качестве причины переименования называется унификация под единым брендом названия развиваемого в Google диалекта SQL и связанных с ним библиотек для разбора и парсинга. Предполагается, что переименование ZetaSQL в GoogleSQL уменьшит путаницу и упростит поиск материалов, связанных с технологией GoogleSQL. Репозиторий с открытым кодом ZetaSQL продолжит развиваться той же командой, но под именем GoogleSQL.

  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Опубликован Valkey 8.0, форк СУБД Redis от Amazon, Google, Oracle и Ericsson
  3. OpenNews: Google представил Lovefield, SQL-подобную БД для JavaScript
  4. OpenNews: На конференции Google I/O представлена открытая графо-ориентированная СУБД Cayley
  5. OpenNews: Компания Google открыла исходные тексты БД LevelDB
  6. OpenNews: Открыты исходные тексты кластерной БД, напоминающей Google BigTable
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64735-googlesql
Ключевые слова: googlesql, zetasql, sql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:25, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    А как же NoSQL?! Потравили хипстеров, а сами продолжают писать SQL.
     
     
  • 2.5, Аноним (5), 10:53, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А это совершеено другая сфера применения. Иногда хочется много места чтобы хранить сотни галстуков, а иногда нужно подобрать правильный.
     
  • 2.38, Аноним (38), 19:50, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    NoSQL старше SQL, но очередной специалист из комментариев втавит свое важное мнение...
     
     
  • 3.40, Аноним (40), 20:11, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    nosql это все что не sql, даже простой текстовый файл в редакторе с поиском по тексту, чаще под nosql понимают документные или столбцовые базы или др, по сути просто денормализованные данные
     

  • 1.6, Аноним (6), 11:02, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пробежался бегло по описанию пайпов, создалось впечатление, что они переизобретают CTE.
     
     
  • 2.10, Аноним (10), 11:36, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Фатальный недостаток, мсье!
     

  • 1.9, Аноним (9), 11:32, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    зато честно...
    сразу по названию, разные целевые аудитории пойдут в разные стороны:
    адепты и неофиты ГуГоЛя не перепутают дверь
    другие сразу будут держаться по-дальше
     
     
  • 2.18, Аноним (18), 13:09, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >SQL-анализатора ZetaSQL в GoogleSQL

    Да это вообще прям самое лучшее).

     

  • 1.12, Аноним (12), 12:35, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Минутка теории заговоров: можно переименовывать свои продукты каждый год, чтобы натренированные LLM конкурентов путались в ответах и ничего не знали про новое имя.
     
     
  • 2.14, пох. (?), 12:52, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Аллах с тобой, это как раз то немногое что ллмки отлично умеют.

     

  • 1.13, Аноним (13), 12:35, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А YouTube когда в GoogleTube переименуют? Унификация под единым брендом уменьшит путаницу и упростит поиск материалов!
     
     
  • 2.16, Аноним (16), 13:05, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Когда рейтинги начнут падать.
     
  • 2.24, kusb (?), 13:58, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Переименуют в Google - единое приложение и единый интегрированный сайт для всего, включая поиск, просмотр видео, платёжную систему, общение с ИИ...
     

  • 1.15, Витюшка (?), 12:54, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А теперь берём... берём... лёгким движением руки видим что потрясающий nushell (и его язык программирования nu) - это не только "более удобная оболочка для админов".

    И там идеи которые на поколения опережают эти вариации SQL.
    ls | first 10 | where name = "Donny"

    Ой, что это тут у нас? Язык запросов SQL с pipe и не только

     
     
  • 2.17, Аноним (16), 13:06, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Для для тех кто не умеет в анализ пояснить это хорошо или плохо?
     
     
  • 3.22, Витюшка (?), 13:45, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну если прикрутить это к движку баз данных - получится новый передовой язык запросов. Крайне удобный, строго типизированный.

    То есть между ls | where... передаются данные которые тмпизированы (в отличие от bash где "всё есть строка".

    А почему круто для баз данных? Потому что он работает (хоть и в памяти) с таблицами. Это и есть его основная структура.

    Если в применении к обычному админству. Считай что ты пишешь те же самые SQL к базе данных в памяти. И данные одной команды полностью известны второй после оператора pipe. Это не просто "какая-то строка".

     
  • 2.19, Аноним (19), 13:21, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > И там идеи которые на поколения опережают эти вариации SQL.

    SQL появился в 1973, если ты не в курсе. "Нп поколения", ага.

    > ls | first 10 | where name = "Donny"

    Гениально! Делаем листинг всей директории, чтобы откусить от него первые десять имен и найти среди них Donny.

    > Ой, что это тут у нас? Язык запросов SQL с pipe

    Нет, это костыльная портянка юникствых комманд для ФС, не имеющая никакого отношения к, собственно, структурированным запросам.

     
     
  • 3.21, Витюшка (?), 13:38, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мы же про язык сейчас говорим, синтаксис.
    Конкретно в применении в движку реляционных баз данных - движок может делать всё что угодно пока сохраняется корректность результата. И ничего "последовательно" он делать не должен.

    А этот запрос он логический. Он не говорит "как". Поколения - это технологически.

     
  • 3.25, анон (?), 14:36, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> ls | first 10 | where name = "Donny"
    > Гениально! Делаем листинг всей директории, чтобы откусить от него первые десять имен
    > и найти среди них Donny.

    Генераторы? Не, не слышали! Даже "нормальный", древний ls не будет сначала читать всю директорию и лишь затем выводить содержимое.

    Т.е. вполне сработает и в классическом варианте типа
    ls | head -n10|фильтр
    с той разницей, что фильтр из-за "весь выхлоп - лишь строка" придется долго и вдумчиво велосипедить.

     
     
  • 4.32, Аноним (32), 17:29, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >с той разницей, что фильтр из-за "весь выхлоп - лишь строка" придется долго и вдумчиво велосипедить.

    Революция отменяется, расходимся.
    https://www.nushell.sh/commands/docs/ls.html
    >input output
    >nothing table

    Единственное, что у них нормально расписано, так это ключи, но и то, поскольку они простые. Зачем-то приведены примеры, раскрытия glob выражений, хотя к ls glob выражения не имеют никакого отношения. Возвращаемый тип не описан.

    Язык для написания факториалов^W листнга файлов.

     
     
  • 5.34, анон (?), 18:19, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Возвращаемый тип не описан.

    Дык, иногда таки все же желательно читать доки "с нуля", а не додумывать, как оно там на самом деле может/дóлжно быть:
    [CODE]
    ls | describe
    table<name: string, type: string, size: filesize, modified: datetime> (stream)
    ls -l |describe

    table<name: string, type: string, target: nothing, readonly: bool, mode: string, num_links: int, inode: int, user: string, group: string, size: filesize, created: datetime, accessed: datetime, modified: datetime> (stream)

    ls /usr/local/bin | where size < 100B and modified > ('2 months ago'|date from-human)|take 1
    ╭───┬─────────────────────────────────┬─────────┬──────┬─────────────╮
    │ # │              name               │  type   │ size │  modified   │
    ├───┼─────────────────────────────────┼─────────┼──────┼─────────────┤
    │ 0 │ /usr/local/bin/androiddeployqt6 │ symlink │ 30 B │ 2 weeks ago │
    ╰───┴─────────────────────────────────┴─────────┴──────┴─────────────╯
    [/CODE]
    Не, оно конечно не без шероховатостей и так и хочется заявить, что "н.и.н.y.жна! Диды и без этого прекрасно костыляли!", но что-то в этом есть. Особенно в привязке к типам/полям.

     
  • 4.35, Аноним (35), 18:20, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже "нормальный", древний ls не будет сначала читать всю директорию и лишь затем выводить содержимое.

    Вообще-то будет, ибо там сортировка.

     
     
  • 5.36, анон (?), 19:31, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Даже "нормальный", древний ls не будет сначала читать всю директорию и лишь затем выводить содержимое.
    > Вообще-то будет, ибо там сортировка.

    Кхе, опции -f / -U спецом для этого:
    [CODE]
    /* In this narrow case, print out each name right away, so
                     ls uses constant memory while processing the entries of
                     this directory.  Useful when there are many (millions)
                     of entries in a directory.  */
                  if (format == one_per_line && sort_type == sort_none
                          && !print_block_size && !recursive)[/CODE]
    Да и

    ls -R /usr/src | head -n10
    Добавит изначальные диры(первого уровня) в queue и будет вызывать для каждого элемента этой очереди print_dir, в котором опять таки, найденые субдиры будут добавляться в очередь вывода. Constant memory конечно не будет, но не все 100500 поддиректорий вместе с содержимым "одним куском". Т.е. после вывода первых 10 строк - усе, кино кончилось.

     
     
  • 6.37, Аноним (37), 19:47, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> Даже "нормальный", древний ls не будет сначала читать всю директорию и лишь затем выводить содержимое.
    >> Вообще-то будет, ибо там сортировка.
    > Кхе, опции -f / -U спецом для этого

    Каеф. Расскажи еще, какие там еще флажки нужно добавить, чтобы ваши башпортянки работали, как положено?

    Ты, видимо, пропустил, что изначальная кривость его "ls | first 10 | where name = "Donny"" в том, что фильтрация идет после отсечения первых 10 элементов. А если делать, как он задумал, то нужно наоборот. Это во-первых. А во-вторых, при таком раскладе с твоим -f/-U у тебя будет каждый раз рандомный выхлоп (сортировки-то нет).

    Вобщем, сношайтесь сами со своими кривыми велосапедами и трогайте SQL.

     
     
  • 7.43, анон (?), 20:27, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты, видимо, пропустил, что изначальная кривость его "ls | first 10 |

    Я окончательно понял, что ты прискипался к семантике примера, потому что больше не к чему. И что сама идея за этим тебе не интересна, лишь унылый сра* ради непонятно чего ...  

    >> Кхе, опции -f / -U спецом для этого
    > Каеф. Расскажи еще, какие там еще флажки нужно добавить, чтобы ваши башпортянки
    > работали, как положено?

    Каеф. WSLщики совсем не палятся. Флажки, как и кусок кода, из "нормальной", гну/бзд реализации ls.
    А так все хорошо, прекрасная маркиза 😀

    > А во-вторых, при таком раскладе с твоим -f/-U у тебя будет каждый раз рандомный выхлоп (сортировки-то нет).

    Ох уж эти опеннетные теоретики:

    [CODE]
    # берем ченибудь с кучей файлов и дир
    % /bin/ls -fR /usr/src|wc -l
      138936
    % repeat 10 {/bin/ls -fR /usr/src|md5}
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    68274692f10674eccb1080046607376c
    [/CODE]
    Как ты видишь, я могу тоже прискипаться к чему-нибудь. Просто это не интересно: какой-то унылый сра* ради сра*а получается.

     
  • 2.20, Мемоним (?), 13:37, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > ls | first 10 | where name = "Donny"

    Пауэрщельно!

     
  • 2.29, Аноним (29), 16:02, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > потрясающий nushell
    > ls | first 10 | where name = "Donny"

    Через head и grep это делалось когда тебя ещё в проекте не было, безо всяких sql, васянских шеллов и тем более маргинальных яп.

     
     
  • 3.39, анон (?), 19:55, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Через head и grep это делалось когда тебя ещё в проекте не

    А теперь грепни по дате, о великий защитник скреп 🤦

    > было, безо всяких sql, васянских шеллов и тем более маргинальных яп.

    Во-во, деды и прадеды без теплых ватерклосетов жили и мы как нибудь перебьемся. И вообще, забеги по граблям "весь выхлоп - лишь длинная строка" укрепляют лоб 🙄 ...


     
     
  • 4.41, Витюшка (?), 20:14, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе нас к этому активно готовят. А тут люди уже сами подготовленные)
     
  • 2.30, Аноним (32), 17:05, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >лёгким движением руки видим что потрясающий nushell

    У вас есть реальный опыт использования? Как там с интеграцией сторонних команд?

     
     
  • 3.42, Витюшка (?), 20:22, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Там есть стандарт (протокол) - команды можно писать самому любые на Rust, можно и на Python - это вроде как оффициально. А так на любом языке.

    Даже сами "системные" (поставляемые с nushell) команды так написаны, как сторонние, а не прибиты.
    Смотря что иметь ввиду под этом. Я в нем постоянно работаю, это мой основной shell. Пишу на нем все скрипты, автоматизацию. Но, все таки прямо до полноценного языка не дотягивает (из-за системы типов) - в том смысле что ручки так и тянутся (иногда) к Rust.

    Но именно как замена bash, sh, для скриптов (а не целые программы на нем писать) это идеальный вариант. А для серьезного всегда можно это написать в виде сторонней команды.

    Сторонние команды должны реализовывать протокол взаимодействия. И он сразу и полностью встраивается в экосистему команды. Все базовые команды можно будет применять.

    Ну например ты лезешь на какой-то сервер погоды, получаешь погоду столиц и возвращаешь в виде таблички. Все. Все сортировки, фильтры, манипуляции ("верни первые 10 строк") будут работать.

     
  • 2.31, Аноним (32), 17:13, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Ой, что это тут у нас? Язык запросов SQL с pipe и не только

    Здесь и близко никакого sql нет. pipe к sql не имеет абсолютно никакого отношения.

     
  • 2.44, _ (??), 22:17, 04/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > И там идеи которые на поколения опережают эти вариации SQL.
    > ls | first 10 | where name = "Donny"
    > Ой, что это тут у нас? Язык запросов SQL с pipe и не только

    Nope! This is freaking M$ PowerShell 8-)

     

  • 1.26, Джон Титор (ok), 14:45, 04/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Впервые слышу об этом инструментарии. Может кто дать больше информации зачем он нужен?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру