Ivan Begtin
7.98K subscribers
1.79K photos
3 videos
101 files
4.5K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech
Download Telegram
Недавно я писал про подход к переосмыслению работы с любыми унаследованными продуктами/протоколами как "всё SQL" [1]. Иногда такой подход осуществлять сложно, иногда очевидно, а вот подборка примеров когда это работает и работает успешно․

- textql [2] - утилита и библиотека на Go по работе с файлами CSV и TSV так словно это SQL таблицы. Поддерживает практически полностью синтаксис SELECT запросов.
- gitql [3] - инструмент на Go для работы с Git как с базой данных SQL. Поддерживает все хранимые в Git объекты, лог и работает в режиме только для чтения.
- q - Text as Data [4] - инструмент работы с CSV и TSV как с SQL, но написанный на Python. Также поддерживает сразу множество sqlite баз данных.
- dockersql [5] - база контейнеров для Docker как SQL, тоже на Go написано, не обновлялось уже 9 лет, но как proof-of-concept интересно. Работает поверх API Docker'а
- Yahoo! Query Language (YQL) [6] универсальный SQL-подобный язык запросов к API и CSV, RSS и другим файлам. На сайте Yahoo! его более нет, осталась только страница в Википедии и рассеянные по интернету примеры

Наверняка есть и больше примеров. В некоторых случаях это оказывается совершенно оправдано, textql, к примеру, удобный инструмент для тех кто работает с CSV файлами часто и сложным образом. Можно ли через призму этого сделать инструменты SQL для IMAP4 или SQL для FTP или SQL для файловой системы (уже есть, кстати) и иначе? Конечно возможно!

Ссылки։
[1] https://t.me/begtin/4613
[2] https://github.com/dinedal/textql
[3] https://github.com/filhodanuvem/gitql
[4] https://github.com/harelba/q
[5] https://github.com/crosbymichael/dockersql
[6] https://en.wikipedia.org/wiki/Yahoo!_Query_Language

#opensource #datatools #queryengines #sql