Зображення, створене за допомогою DALL-E
У час, коли аналітична обробка даних є критичною відмінністю між успішним бізнесом і ні, нам потрібен набір інструментів, який міг би задовольнити потреби. Розвиток технологій допоміг розвинути всі необхідні нам інструменти обробки даних, а саме DuckDB і MotherDuck.
DuckDB це система керування базами даних SQL Online Analytical Processing (OLAP) із відкритим вихідним кодом. Система баз даних розроблена для швидкої обробки аналітичних запитів даних, незалежно від розміру даних. Система реалізує обробку в пам’яті та системи OLAP, які ефективно покращують наш процес аналізу даних.
DuckDB ідеально підходить для зберігання та обробки табличних даних, включаючи аналіз даних (об’єднання таблиць, агрегація даних тощо), а також коли наш робочий процес зазвичай передбачає значні зміни в таблиці. З іншого боку, DuckDB не підходить для роботи з великими обсягами даних і кількох одночасних процесів в одній базі даних.
MotherDuck є керованим сервісом DuckDB у хмарі. Він безкоштовний для використання та з відкритим кодом, але підтримується спільнотою DuckDB. Це сервіс, створений у партнерстві з DuckDB Lab для створення платформи хмарних сервісів, якою може користуватися суспільство.
За допомогою комбінації DuckDB і Motherduck ми можемо створити механізм аналітики, який легко використовуватиметься в будь-якому сценарії. Як нам це зробити? Давайте вникнемо в це.
Ми б використали рідний інтерфейс користувача MotherDuck, щоб показати вам, як працює служба та чому DuckDB є потужним інструментом для аналізу даних. Будь ласка, зареєструйтеся на веб-сайті та отримайте обліковий запис MotherDuck, якщо ви ще цього не зробили.
Після успішної реєстрації облікового запису MotherDuck ми перейдемо до інтерфейсу користувача MotherDuck. Спробуйте ознайомитися з інтерфейсом користувача, і ви зрозумієте, що інтерфейс схожий на Jupyter Notebook, якщо ви коли-небудь ним користуєтеся.
Ми поекспериментуємо з потужністю DBduck в інтерфейсі користувача MotherDuck з даними DS Salary Згорнути. Завантажте дані за допомогою кнопки «Додати файли», і з’явиться нова клітинка із запитом для виконання. Запит має виглядати так.
CREATE OR REPLACE TABLE ds_salaries AS SELECT * FROM read_csv_auto(['ds_salaries.csv']);
Після створення таблиці спробуйте запитати дані за допомогою наступного коду.
select * from my_db.ds_salaries limit 10;
Як бачите, MotherDuck дуже схожий на аналіз даних у Notebook, але із запитами SQL. Давайте спробуємо виконати запит для аналізу даних у MotherDuck.
select job_title,
avg(salary_in_usd) as average_salary_in_usd
from my_db.ds_salaries
GROUP BY job_title
ORDER BY job_title
Ви можете виконати запит у комірці; результат таблиці показаний подібно до зображення нижче.
Ви можете відфільтрувати дані, повернути таблицю або завантажити результат за допомогою кнопки вибору, доступної в інтерфейсі користувача.
MotherDuck також дозволяє користувачеві отримати доступ до бази даних через Python на вашому ноутбуці. Нам потрібно встановити пакет DuckDB за допомогою наступного коду.
pip install duckdb==v0.9.2
Поточна версія, яку підтримує MotherDuck, — DuckDB 0.9.2; тому ми встановили цю версію.
Коли встановлення пройде успішно, нам потрібно підключити DuckDB до Motherduck. Є кілька способів автентифікації підключення, але ми б використали маркер служби. Цей маркер отримується в налаштуваннях MotherDuck.
import duckdb
token = "insert token here"
# initiate the MotherDuck connection
con = duckdb.connect(f'md:?motherduck_token={token}')
Якби ми не встановили жодної назви бази даних, MotherDuck отримував би доступ за допомогою бази даних за замовчуванням, якою є my_db. Далі скористаємося тим самим запитом, який ми робили раніше в Блокноті.
q = """
select job_title,
avg(salary_in_usd) as average_salary_in_usd
from my_db.ds_salaries
GROUP BY job_title
ORDER BY job_title
"""
con.sql(q).show()
Ви побачите результати, подібні до таблиці нижче.
┌─────────────────────────────────────┬───────────────────────┐
│ job_title │ average_salary_in_usd │
│ varchar │ double │
├─────────────────────────────────────┼───────────────────────┤
│ 3D Computer Vision Researcher │ 21352.25 │
│ AI Developer │ 136666.0909090909 │
│ AI Programmer │ 55000.0 │
│ AI Scientist │ 110120.875 │
│ Analytics Engineer │ 152368.63106796116 │
│ Applied Data Scientist │ 113726.3 │
│ Applied Machine Learning Engineer │ 99875.5 │
│ Applied Machine Learning Scientist │ 109452.83333333333 │
│ Applied Scientist │ 190264.4827586207 │
│ Autonomous Vehicle Technician │ 26277.5 │
│ · │ · │
│ · │ · │
│ · │ · │
│ Principal Data Engineer │ 192500.0 │
│ Principal Data Scientist │ 198171.125 │
│ Principal Machine Learning Engineer │ 190000.0 │
│ Product Data Analyst │ 56497.2 │
│ Product Data Scientist │ 8000.0 │
│ Research Engineer │ 163108.37837837837 │
│ Research Scientist │ 161214.19512195123 │
│ Software Data Engineer │ 62510.0 │
│ Staff Data Analyst │ 15000.0 │
│ Staff Data Scientist │ 105000.0 │
├─────────────────────────────────────┴───────────────────────┤
│ 93 rows (20 shown) 2 columns │
└─────────────────────────────────────────────────────────────┘
За допомогою запиту вище ви можете використовувати наступний код, щоб обробити їх у Pandas DataFrame.
import pandas as pd
df = con.sql(q).fetchdf()
Нарешті, ви можете завантажити інший набір даних до бази даних за допомогою наступного запиту.
con.sql("CREATE TABLE mytable AS SELECT * FROM '~/filepath.csv'")
Наведений вище запит передбачає, що ваші дані є файлом CSV. Інші варіанти включають S3 або локальну DuckDB до бази даних MotherDuck.
DuckDB — це система баз даних з відкритим кодом, розроблена спеціально для аналізу даних. Система розроблена для швидкої та ефективної обробки даних. MotherDuck — це керована хмарна служба з відкритим кодом для DuckDB.
Об’єднавши DuckDB і MotherDuck, ми можемо перетворити наші ноутбуки на персональну систему аналітики, зберігаючи наші дані в хмарі та швидко обробляючи їх за допомогою DuckDB.
Корнеліус Юдха Віджая є помічником менеджера з питань науки про дані та автора даних. Працюючи повний робочий день в Allianz Indonesia, він любить ділитися порадами щодо Python і даних у соціальних мережах і друкованих ЗМІ.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://www.kdnuggets.com/turn-your-laptop-into-a-personal-analytics-engine-with-duckdb-and-motherduck?utm_source=rss&utm_medium=rss&utm_campaign=turn-your-laptop-into-a-personal-analytics-engine-with-duckdb-and-motherduck
- : має
- :є
- : ні
- :де
- 10
- 125
- 15000
- 20
- 25
- 3d
- 7
- 8
- 8000
- 9
- a
- вище
- доступ
- рахунки
- набувати
- придбаний
- діяльність
- додавати
- просування
- просування
- агрегація
- AI
- ВСІ
- Allianz
- дозволяє
- вже
- Також
- an
- аналіз
- аналітик
- Аналітичний
- Аналітичний
- аналітика
- та
- Інший
- будь-який
- прикладної
- ЕСТЬ
- AS
- Помічник
- передбачає
- At
- перевіряти справжність
- автономний
- автономний транспортний засіб
- доступний
- BE
- нижче
- між
- побудований
- бізнес
- але
- button
- by
- CAN
- осередок
- Зміни
- хмара
- код
- Колони
- поєднання
- об'єднання
- співтовариство
- комп'ютер
- Комп'ютерне бачення
- одночасно
- З'єднуватися
- зв'язку
- може
- створювати
- критичний
- Поточний
- дані
- аналіз даних
- аналітик даних
- Analytics даних
- інженер даних
- обробка даних
- наука про дані
- вчений даних
- Database
- дефолт
- призначений
- розвиненою
- Розробник
- DID
- різниця
- do
- справи
- подвійний
- скачати
- фактично
- продуктивно
- двигун
- інженер
- і т.д.
- Ефір (ETH)
- НІКОЛИ
- Кожен
- приклад
- виконувати
- експеримент
- ознайомити
- кілька
- філе
- Файли
- фільтрувати
- після
- для
- Безкоштовна
- від
- генерується
- отримати
- Давати
- Group
- рука
- обробляти
- Обробка
- має
- he
- допоміг
- тут
- Як
- HTTPS
- if
- зображення
- implements
- удосконалювати
- in
- включати
- Індонезія
- ініціювати
- встановлювати
- установка
- в
- включає в себе
- за участю
- IT
- приєднатися
- Jupyter Notebook
- KDnuggets
- lab
- портативний комп'ютер
- ноутбуки
- вивчення
- як
- МЕЖА
- загрузка
- місцевий
- подивитися
- виглядає як
- любить
- машина
- навчання за допомогою машини
- вдалося
- управління
- система управління
- менеджер
- Медіа
- багато
- множинний
- ім'я
- а саме
- рідний
- Необхідність
- потреби
- Нові
- наступний
- ноутбук
- of
- on
- ONE
- онлайн
- з відкритим вихідним кодом
- Опції
- or
- порядок
- Інше
- наші
- з
- вихід
- пакет
- панди
- партнерінг
- ідеальний
- персонал
- Стрижень
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- будь ласка
- влада
- потужний
- досить
- раніше
- Головний
- процес
- процеси
- обробка
- Product
- Програміст
- громадськість
- Python
- запити
- швидко
- легко
- реалізувати
- Незалежно
- реєструвати
- замінювати
- дослідження
- дослідник
- результат
- заробітна плата
- то ж
- сценарій
- наука
- вчений
- побачити
- вибрати
- вибір
- обслуговування
- комплект
- налаштування
- Поділитись
- Повинен
- показаний
- значний
- аналогічний
- Аналогічно
- Розмір
- соціальна
- соціальні медіа
- Софтвер
- конкретно
- SQL
- стек
- Персонал
- успішний
- Успішно
- підходящий
- підтримка
- Опори
- швидко
- система
- Systems
- таблиця
- прийняті
- Технологія
- Що
- Команда
- Їх
- Там.
- Ці
- це
- час
- Поради
- до
- знак
- інструмент
- інструменти
- намагатися
- ПЕРЕГЛЯД
- ui
- використання
- користувач
- використання
- зазвичай
- автомобіль
- версія
- через
- бачення
- було
- способи
- we
- веб-сайт
- коли
- який
- в той час як
- чому
- волі
- з
- робочий
- робочий
- працює
- б
- письменник
- лист
- ви
- вашу
- себе
- зефірнет