Data Science. SQL hub
35.8K subscribers
922 photos
50 videos
37 files
981 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
Сочетание DuckDB и PyArrow позволяет эффективно обрабатывать на одной машине массивы данных, превышающие объем памяти.

В приведенном ниже коде запуск DuckDB на наборе данных #PyArrow примерно в 2906 раз быстрее, чем запуск #DuckDB на #pandas DataFrame.

Pyarrow
DuckDB

#tips

@sqlhub
👍12🔥42
Forwarded from PHP Academy
Media is too big
VIEW IN TELEGRAM
PHP, PDO SQL Injection

SQL Injection минимум который должен знать каждый разработчик код которого работает в production

00:00 Вступление и оглавление
01:06 Определения (теория)
01:45 Чем опасны SQL Injection
03:34 Практический стенд
06:12 Обхода аутедентификации
09:23 Модификации базы данных
11:47 Защита с помощью placeholder
15:49 Защита там где placeholder не применимы

источник

@phpshka
👍82🥰1
🔍 ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев

Почему не MongoDB?
Чем плоха Mongo?

У нее открытый исходный код, поддерживается разделение данных, но совершенно иная архитектура — с единой точкой отказа. При «падении» главного узла, то есть координатора, в БД начинается отработка отказа, во время которого БД недоступна.

Кроме того, для достижения высокой доступности каждый сегмент Mongo должен запускаться как набор реплик —  больше узлов. Кольцевая архитектура Cassandra в этом смысле превосходнее. Драйвер Scylla «знает» о сегментах и добирается до конкретного узла/процессора, ответственного за запрашиваемую строку, делая распределение действительным.

Но почему так важны отработка отказов без простоев и высокая доступность? На спотовых экземплярах — а это 1/4 стоимости вычислений — часто ежедневно случаются отработки отказов: узлы в k8s постоянно уничтожаются и воссоздаются, что чревато завершением всех запущенных в них подов/процессов, в том числе БД.

Установка Scylla
Сначала запустим локально, используя драйверы и что-нибудь на Cassandra Query Language:
docker run -p 9042:9042 -p 7002:7000 -p 7001:7001 -p 9160:9160 -p 9180:9180 --name scylla --hostname scylla -d scylladb/scylla --smp 1 --developer-mode 1

Этой командой запустится одноузловой кластер Scylla. Так в режиме разработчика Scylla требуется минимум ресурсов в отличие от Cassandra, с которой у Docker Engine много работы.

Применение драйвера Scylla
Вот простой пример на Golang с использованием официального драйвера Scylla:
import "github.com/gocql/gocql"

func Connect(config Config) (*gocql.Session, error) {
cluster := gocql.NewCluster(config.Hosts...)
cluster.Keyspace = config.KeySpace
cluster.CQLVersion = "3.11"
cluster.RetryPolicy = &gocql.ExponentialBackoffRetryPolicy{
NumRetries: 5, Min: time.Millisecond * 5, Max: time.Second * 5}
cluster.ProtoVersion = 3
cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(
gocql.RoundRobinHostPolicy())
cluster.ConnectTimeout = time.Second * 10
cluster.Consistency = gocql.One
if config.Timeout != nil {
cluster.Timeout = *config.Timeout

}

cluster.Authenticator = gocql.PasswordAuthenticator{
Username: config.Username, //'cassandra' по умолчанию
Password: config.Password, //'cassandra' по умолчанию
}
session, err := cluster.CreateSession()
if err != nil {
return nil, err
}

return session, nil
}


Здесь стоит обратить внимание вот на что:
cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(
gocql.RoundRobinHostPolicy())


Драйвером-клиентом TokenAware с помощью ключа раздела пробуется первый сегмент, затем методом циклического перебора — следующий, если первый недоступен. Для этого необходимо подключиться не к порту Cassandra по умолчанию 9042, а к порту Scylla с поддержкой сегментов 19042.

Попробуем простой запрос:
func Ping(session *gocql.Session) error {
var str = new(string)
if err := session.Query("SELECT uuid() FROM system.local;").Scan(str); err != nil {
return err
}
if str == nil || len(*str) == 0 {
return errors.New("failed sanity check")
}
return nil
}
// альтернатива «select 1;» в SQL


Переходим в облако

ПРОДОЛЖЕНИЕ

@sqlhub
👍101🔥1
🖥 Finetuning LLaMa + Text-to-SQL

Llama 2 - отличная модель, но она не очень хорошо справляется с преобразованием текста в SQL запросы.

Приходится прибегать к тонкой настройке 💡.
Вышла отличная библиотека для Llama 2 преобразования текста в SQL.

git clone https://github.com/run-llama/modal_finetune_sql.git

GIthub
Ipynb

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥32
Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:


Машинное обучение: @ai_machinelearning_big_data
Go: @Golang_google
C#: @csharp_ci
Базы данных: sql
Python: @python_job_interview
C/C++/: @cpluspluc
Data Science: @data_analysis_ml
Devops: @devOPSitsec
Rust: @rust_code
Javascript: @javascriptv
React: @react_tg
PHP: @phpshka
Docker: @docker
Android: @android_its
Мобильная разработка: @mobdevelop
Linux: linuxacademy
Big Data: t.me/bigdatai
Хакинг: @linuxkalii
Java:@javatg
Собеседования: @machinelearning_interview


💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy

🔥ИТ-Мемы: t.me/memes_prog

🇬🇧Английский: @english_forprogrammers
👍5
🖥SQLModel

Полезная библиотека SQLModel для Python, которая упрощает взаимодействие с SQL базами данных.

С помощью SQLModel можно использовать Pydantic-подобные классы, использующие аннотации типов Python для повышения читаемости.

Github
Документация

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥1
🖥 SQLLEX ORM v0.3.0

Python-библиотека SQLLEX, которая позволяет эффективно и безопасно взаимодействовать с базами данных.

Если вы имели опыт работы с базами данных на Python, то, вероятно, испытывали трудности при написании SQL-запросов. Однако теперь нет необходимости бороться с этим. Больше никаких con.cursor() , ваш ждут удобные функции db.insert(), db.select().

Теперь ваш код будет более структурирован и понятен без магии SQL.

На github-е SQLLEX имеется подробная документация с обширным набором примеров кода, доступных в разделе wiki.

pip install sqllex

Github
Документация

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥2👎1
💬 Регулярные выражения

Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.

Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.

Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
SELECT * FROM users WHERE first_name SIMILAR TO '[AB]%';

Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.

Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.

А что, если мы случайно пропустим какую-то букву? В квадратных скобках можно использовать символ - для перечисления. Если записать в квадратных скобках начальный символ, поставить "-" и указать конечный символ, то такой шаблон вернет любой символ из диапазона от начального до конечного.

Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:

SELECT * FROM users WHERE username SIMILAR TO '%[a-z]';

Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
SELECT * FROM users WHERE username SIMILAR TO '%[а-я]%';
Чтобы выбрать все цифры, используем шаблон [0-9]:

SELECT * FROM users WHERE username SIMILAR TO '%[0-9]';


Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.

Комбинируя правила, мы можем создавать достаточно сложные шаблоны. Например, проверим, что в поле email введены корректные адреса электронной почты.

Корректная почта должна содержать адрес, который состоит из:

*️⃣Имени с любым количеством любых символов — например, my_email

*️⃣Символа @

*️⃣Домена с любым количеством любых символов — например, gmail

*️⃣Точки

*️⃣Указания национальной зоны — например, com

Запрос на поиск корректных адресов будет таким:
SELECT username, email FROM users WHERE email SIMILAR TO '%@%.%';

Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
SELECT username, email FROM users WHERE email NOT SIMILAR TO '%@%.%';

Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.

Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.

Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
SELECT username, email FROM users WHERE email SIMILAR TO '%.__';

Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
SELECT
username,
email
FROM users WHERE email SIMILAR TO '%.___';


Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥105
🔍 Где искать работу Дата Саентисту?

Собрали для вас список площадок для поиска работы или фрланс-проекта в области Data Science.

1. Toptal
Toptal - один из крупнейших фриланс сайтов для специалистов по анализу данных. В отличие от многих других бирж фриланса в Toptal соискатели проходят тестирование в различных областях, включая знание английского языка и технические навыки, в области SQL и Python для data science.

2. Open Data Science Jobs
Open Data Science Jobs - одна из крупнейших площадок вакансий, посвященных только науке о данных. Такие компании, как Bose, использовали эту доску объявлений для поиска специалистов по науке о данных для оптимизации своей бизнес-аналитики.

3. Kaggle
Kaggle - одно из крупнейших сообществ датасаентистов. Kaggle предоставляет наборы данных, проводит соревнования и вообще способствует процветанию сообщества специалистов по анализу данных.

Доска вакансий Kaggle - один из лучших вариантов для начала поиска проекта для рабрты. Ее услугами пользуются крупнейшие компании (Amazon, Capital One и AIG и тд).

4. Scalable Path

Если у вас есть готовая команда датасаентистов и вы хотите найти интерсный проект , Scalable Path - отличный вариант.

5. Gigster
Еще одина крупная фриланс площадка с проектами ds.

6. iCrunchData - это доска объявлений c вакансиями в области науки о данных.

7. X-Team
X-Team - рынок фриланса, где можно работать, как одному, так и в команде.

8. Gun.io
Gun.io очень похож на Toptal, быстро и эффективно подбирая для компаний квалифицированных инженеров по науке о данных. С тысячами зарегистрированных членов Gun.io является восходящей звездой в индустрии фриаланса.

9. R-users
Простой поиск по сайту R-users позволяет найти десятки вакансий в области науки о данных, в которых используется язык программирования R.

10. AngelList
AngelList - это место, где встречаются ит- предприниматели и инвесторы.

11. Engineering Jobs
Если вы ищете ds проект Engineering Jobs может стать отличным местом для поиска интересной работы.

12. Dice
Dice - доскоа объявлений о карьере в сфере технологий и ИТ. Эта доска известна тем, что привлекает архитекторов программного обеспечения, инженеров, QA-тестеров и инженеров по анализу данных.

13. SimplyHired
SimplyHired - это еще одна крупная доска объявлений о работе, похожая на Indeed или Monster.

14. Папка с каналами для поиска работы в телеграме.

Телеграм каналы и чаты, где публикуются вакансии ds, python и не только. Очень полезная папка (папки поддерживаются только в последних версиях тг), где можно найти вакансию на любой ЯП.

Ставьте 👍 , если полезно.

@sqlhub
👍127🔥3👏1
🖥 Vanna

Крутой Python-пакет на базе ИИ для автоматической генерации SQL-запросов

Фреймворк позволяет создавать сложные SQL-запросы всего за несколько секунд. С Vanna вы можете легко и быстро получать данные из вашей базы данных, просто задавая вопросы

Инструмент может похвастаться высокой точностью на сложных наборах данных, безопасностью и конфиденциальностью, а также самообучением

Стоимость: #бесплатно (но есть платные функции)

#SQL #ИИ #базы_данных

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥41
🖥 Пакеты драйверов для баз данных на языке Python

Ниже приведен список Python-библиотек драйверов для различных баз данных, полезный любому программисту, который интересуется этим языком.

redis-py — клиент базы данных Redis на Python
redis-py 3.5.x — это последняя версия, которая поддерживала Python 2. Обновления безопасности, совместимые с Python 2, выходили вплоть до 20 августа 2020 года. Для redis-py 4.0, следующей основной версии, уже требуется Python не ниже версии 3.5.

PyMySQL — драйвер Pure Python MySQL, совместимый с mysql-python
Этот пакет содержит клиентскую библиотеку Python MySQL, основанную на стандарте PEP 249.

Большинство открытых API-интерфейсов совместимы с mysqlclient и MySQLdb.

ЗАМЕЧАНИЕ: PyMySQL не поддерживает низкоуровневые API-запросы, которые есть в _mysql, а именно data_seek, store_result и use_result. Вы должны использовать высокоуровневые API-запросы, определенные в стандарте PEP 249. Но некоторые API-запросы, такие как autocommit и ping, все же поддерживаются, поскольку PEP 249 никак не регламентирует их применение.

asyncpg — быстрая клиентская библиотека Python / asyncio для базы данных PostgreSQL
Это библиотека интерфейса базы данных, разработанная специально для PostgreSQL и Python / asyncio.

asyncpg — это эффективная и чистая реализация бинарного протокола сервера баз данных PostgreSQL для использования с асинхронным фреймворком Python asyncio. Вы можете узнать больше об asyncpg вот здесь.

asyncpg требует Python версии 3.5 или новее и поддерживается для PostgreSQL начиная с версии 9.2 и заканчивая версией 12.

psycopg2 — самый популярный адаптер PostgreSQL для Python
Psycopg — самый популярный адаптер базы данных PostgreSQL для языка программирования Python. Его основными особенностями являются полная реализация спецификации Python DB API 2.0 и безопасность потоков (несколько потоков могут использовать одно и то же соединение). Он был разработан для многопоточных приложений, которые создают и уничтожают множество связей и выполняют большое количество одновременных операций INSERT или UPDATE.

mysqlclient — поддерживающий Python 3 форк библиотеки mysql-python
В этом проекте добавлена ​​поддержка Python 3 и исправлен ряд ошибок. Мы надеемся, что этот форк будет снова объединен со своей родительской библиотекой. Это было бы так же логично, как объединение дистрибутива и программы для его установки.

cassandra-python-driver — драйвер Python для Cassandra
Современная, многофункциональная и гибконастраиваемая клиентская библиотека Python для Apache Cassandra (1.2+) и DataStax Enterprise (3.1+). Она использует исключительно бинарный протокол Cassandra и язык запросов Cassandra Query Language v3.

motor — аснхронный драйвер Python для MongoDB
Motor — это полнофункциональный драйвер MongoDB для Python Tornado и других асинхронных приложений.

pymssql — простой интерфейс для Microsoft SQL Server
Простой интерфейс баз данных на языке Python, который строится поверх FreeTDS и предоставляет интерфейс Python DB-API (PEP-249) для Microsoft SQL Server.

HappyBase — удобная библиотека для Apache HBase

PyMongo — официальный клиент Python для MongoDB

SuperSQLite — улучшенная библиотека SQLite
Это многофункциональная библиотека Python, предназначенная для использования SQLite в Python компанией Plasticity. Построена она на основе apsw.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥31
SQL_Pandas.pdf
515.4 KB
🔥 Шпаргалка SQL → Pandas

— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.

@sqlhub
👍14🔥21
FugueSQL – SQL для Pandas, Spark и Dask DataFrames

Что такое FugueSQL?

FugueSQL – это библиотека Python, которая позволяет пользователям комбинировать код на языке Python и команды SQL. Это дает пользователям возможность гибко переключаться между Python и SQL в рамках Jupyter Notebook или Python-скрипта.

Чтобы установить FugueSQL, введите:

pip install fugue[sql]

Для запуска на движках выполнения Spark или Dask введите:

pip install fugue[sql, spark]
pip install fugue[sql, dask]
pip install fugue[all]


В этой статье мы рассмотрим некоторые утилиты FugueSQL и сравним FugueSQL с другими инструментами, такими как pandasql.

В чем разница между FugueSQL и pandasql?
Если вы знакомы с pandasql, то у вас может возникнуть вопрос: Зачем использовать FugueSQL, если pandasql уже позволяет выполнять SQL с помощью pandas?

pandasql имеет единственный бэкэнд – SQLite. Передача данных между pandas и SQLite сопряжена с большими накладными расходами.

С другой стороны, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.

from fugue.api import fugue_sql
import json

query = """
SELECT id, value
FROM input_df
TRANSFORM USING map_letter_to_food(mapping={{mapping}}) SCHEMA *
"""
map_dict_str = json.dumps(map_dict)

# returns Pandas DataFrame
fugue_sql(query,mapping=map_dict_str)

# returns Spark DataFrame
fugue_sql(query, mapping=map_dict_str, engine="spark")

Читать
Github

@sqlhub
👍9🔥31👎1
Зачем инструмент dbt нужен аналитику данных

dbt — open-source проект, который решает проблему организации данных и открывает много возможностей для их трансформации, обработкии моделирования.

dbt (Data Build Tool) — инструмент, который позволяет дата-инженерам и аналитикам автоматизировать процессы тестирования, внедрения, документирования в рамках трансформации данных. Проще говоря, dbt — это всё о букве T в акрониме ELT (Extract — Transform — Load). Этот фреймворк не выгружает данные из источников, но предоставляет огромные возможности по работе с теми данными, которые уже загружены в Хранилище (в Internal или External Storage).

dbt основан на языках SQL и Jinja, с версии 1.4.* также поддерживает Python.

Основное назначение dbt — взять код, скомпилировать его в SQL, выполнить команды в правильной последовательности в хранилище

Чем полезен фреймворк

Контроль качества. Для бизнеса важно получать качественные данные, а для этого, в свою очередь, нужны инструменты контроля качества. dbt как инструмент позволяет реализовать любые вариации тестирования: на этапе обновления каких-либо данных мы всегда можем собрать быструю статистику по любым метрикам.

Хранение данных. Даже из «коробки» этот фреймворк позволяет реализовать на уровне хранилища хранение данных с историей СКД-2 (хранения технической истории, изменение атрибутов). С ним можно выстраивать снэпшоты — детальные слои с историей данных. dbt помогает собрать любую историю данных, чтобы отвечать на вопросы аналитиков и бизнеса.

Связывание данных в единую цепочку. Инструмент описывает ациклические зависимости (DAG) и связи, что позволяет легко анализировать цепочку преобразований данных. Когда мы используем и переиспользуем данные, выполнение этих задач связано: если что-то где-то меняется, то сказывается на других сущностях. С помощью dbt мы решаем задачу консистентности данных — устраиваем зависимость выполнения, чтобы одна сущность была рассчитана только после другой, без задержек и потери актуальности данных. Фреймворк помогает собрать в одном месте и связать всю логику — от исходных данных до итоговых результатов и их переиспользования.

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

Настройка дополнительных возможностей. С dbt можно вписать документацию данных и работать с ними, можно настроить логирование стандартными способами и отслеживать аналитику исполнения запросов. Всё это реализуемо, поскольку у фреймворка на основе SQL и Jinja нет ограничений, кроме возможностей самих хранилищ и уровня знаний исполнителя.

Установка
Открываем терминал.
Запускаем команды:
pip install dbt-core #Установка
последней версии;
pip install dbt-core==1.4.0
#Установка конкретной версии.
dbt —version #Проверка установленной
версии.


Документация
Github

@sqlhub
7👍5🔥2
🖥Комплексные приложения для работы с данными с SQL и Jupyter

Этот замечательный, бесплатный курс дает пошаговое введение в создание приложений для работы с данными с использованием блокнотов Python, SQL и Jupyter. Он даже включает в себя введение в визуализацию с использованием plotly и других.

👉Читать курс

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍61
⚡️Почему тип поля enum на уровне базы — зло

Тип колонки enum используется для хранения данных, которые могут принимать определённые значения из заранее определённого набора.
Он обеспечивает ограничение значений, которые может принимать колонка, и позволяет более строго контролировать данные.
Это может быть полезно для хранения статусов, категорий, типов или любых других значений, которые могут быть заданы только из ограниченного набора вариантов.

А что на практике? Давайте рассмотрим.

Допустим у нас есть таблица со списком платежей, содержащая колонку status со следующими значениями:
CREATE TABLE `payments`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`status` ENUM('new', 'progress', 'done', 'fauled') NOT NULL,
KEY(`id`)
) CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


▪️Через какое-то время была замечена грамматическая ошибка в слове "failed" и принято решение её исправить.

Нюанс изменения enum поля в том, что при его редактировании сбрасываются значения колонки в null для всех строк таблицы, а то и вовсе получим ошибку Data truncated for column 'status' at row 3. То есть, чтобы корректно изменить enum поле, нужно куда-то сохранить данные. План действий будет таков:

1. Создать новую enum колонку с правильным набором данных;

2. Скопировать значение из старой колонки в новую и сразу применить исправление значения;

3. Удалить старую enum колонку;

4. Переименовать новую enum колонку.

При использовании фреймворка Laravel это будет выглядеть следующим образом:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
public function up(): void
{
// Создаём новую колонку
Schema::table('payments', function (Blueprint $table) {
$table->enum('tmp_status', ['new', 'progress', 'done', 'failed']);
});

// Копируем значения из enum колонки в новую с корректировкой значения
DB::statement('UPDATE payments SET tmp_status = (IF status = \'fauled\' THEN \'failed\' ELSE status END IF)');

// Удаляем старую колонку
Schema::table('payments', function (Blueprint $table) {
$table->dropColumn('status');
});

// Переименовываем колонку
Schema::table('payments', function (Blueprint $table) {
$table->renameColumn('tmp_status', 'status');
});
}
};


На языке SQL эти действия будут выглядеть следующим образом:

📌 Читать далее

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍52
🖥 SQLGlot

SQLGlot - это парсер, транспилятор, оптимизатор и для SQL. Он может использоваться для форматирования SQL или трансляции между 20 различными диалектами, такими как DuckDB, Presto, Spark, Snowflake и BigQuery. х.

pip3 install sqlglot

Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
Асинхронное варение MongoDB в Python

Интересный доклад старшего разработчика компании Элитриум Даниила Неслуховского c недавней яндексовской конференции Pytup.

За эти 50 минут можно вспомнить типы БД, узнать про Object Mapping, Beanie и прочие компоненты.

Запись трансляции (доклад на 04:32)

#mongodb
👍93🔥1
🔥Бесплатные сертификационные курсы для Data Science в 2023 году.

🔰 SQL
http://online.stanford.edu/courses/soe-ydatabases0005-databases-relational-databases-and-sql

🔰 Python
http://cs50.harvard.edu/python/2022/

🔰Statistics and R
https://edx.org/learn/r-programming/harvard-university-statistics-and-r

🔰Data Science: R Basics
https://edx.org/learn/r-programming/harvard-university-data-science-r-basics

🔰 Excel and PowerBI
http://learn.microsoft.com/en-gb/training/paths/modern-analytics/

🔰Data Science: Visualization
https://edx.org/learn/data-visualization/harvard-university-data-science-visualization

🔰Data Science: Machine Learning
https://edx.org/learn/machine-learning/harvard-university-data-science-machine-learning

🔰 R
http://cognitiveclass.ai/courses/r-101

🔰 Tableau
http://tableau.com/learn/training

🔰 PowerBI
http://learn.microsoft.com/en-us/users/collinschedler-0717/collections/m14nt4rdwnwp04

🔰Data Science: Productivity Tools
https://edx.org/learn/data-science/harvard-university-data-science-productivity-tools

🔰Data Science: Probability
https://edx.org/learn/probability/harvard-university-data-science-probability

🔰 Mathematics
http://ocw.mit.edu/search/?d=Mathematics&s=department_course_numbers.sort_coursenum

🔰 Statistics
http://cognitiveclass.ai/courses/statistics-101

🔰 Data Visualization
http://pll.harvard.edu/course/data-science-visualization

🔰 Machine Learning
http://developers.google.com/machine-learning/crash-course

🔰 Deep Learning
http://introtodeeplearning.com

🔰Data Science: Linear Regression
https://pll.harvard.edu/course/data-science-linear-regression/2023-10

🔰Data Science: Wrangling
https://edx.org/learn/data-science/harvard-university-data-science-wrangling

🔰 Linear Algebra
http://pll.harvard.edu/course/data-analysis-life-sciences-2-introduction-linear-models-and-matrix-algebra

🔰 Probability
http://pll.harvard.edu/course/data-science-probability

🔰Introduction to Linear Models and Matrix Algebra
https://edx.org/learn/linear-algebra/harvard-university-introduction-to-linear-models-and-matrix-algebra

🔰Data Science: Capstone
https://edx.org/learn/data-science/harvard-university-data-science-capstone

🔰 Data Analysis
http://pll.harvard.edu/course/data-analysis-life-sciences-4-high-dimensional-data-analysis

@sqlhub
👍236🔥6