DE – Telegram
522 subscribers
312 photos
81 videos
15 files
405 links
Data Engineering Technologies.
SQL, Python, Kafka, Spark, Pandas, Airflow, Clickhouse, Greenplum, Postgres, dbt, LLM agentic systems, AI, robots, drones etc.

Boost channel - https://news.1rj.ru/str/boost/data_engi
Download Telegram
Hive & Spark

Hive является инфраструктурой для выполнения SQL-запросов над данными, хранящимися в Hadoop-кластере. Он использует MapReduce, Tez или Spark в качестве движка выполнения запросов.

Однако, поскольку Spark SQL поддерживает SQL-запросы и предоставляет распределенные API для обработки данных, у многих возникает вопрос: зачем использовать Hive, если есть Spark SQL?

Существует несколько причин, по которым организации могут продолжать использовать Hive:

1⃣ Совместимость с Hadoop. Hive был создан как инструмент для обработки больших данных в экосистеме Hadoop. Ключевым преимуществом для пользователей Hadoop является то, что Hive можно использовать для обработки данных, которые уже хранятся в Hadoop.

2⃣ Поддержка различных форматов хранения данных. Hive поддерживает множество форматов хранения данных, таких как Avro, ORC, Parquet, CSV и т.д. Это значит, что организации могут использовать Hive для выполнения SQL-запросов и анализа данных различных форматов.

3⃣ Наличие собственного языка запросов. В то время как Spark SQL использует ANSI SQL, Hive использует язык запросов, называемый HQL (Hive Query Language). HQL поддерживает ряд расширений, таких как трансформации таблиц, пользовательские функции и т.д. Некоторые пользователи могут предпочитать HQL за его удобство и гибкость.

Таким образом, использование Hive или Spark SQL зависит от потребностей конкретной организации. Если организация уже использует Hadoop и имеет множество данных, хранящихся в Hadoop, то Hive может быть для нее лучшим выбором. Если организация не привязана к Hadoop и требуется глубокая интеграция с подсистемами машинного обучения и аналитики, то Spark SQL может оказаться более подходящим.

#hive #hadoop #spark #mapreduce
👍6
Начало работы с Apache Spark

Шаг 1️⃣ Установка Apache Spark
Перед тем, как начать работать с Apache Spark, необходимо установить его на свой компьютер. Для этого можно следовать инструкциям на официальном сайте Apache Spark для установки версии, подходящей для используемой системы. Помимо этого можно воспользоваться Docker контейнером или ноутбуком на Google Colab.

Шаг 2️⃣ Настройка среды разработки
Apache Spark может быть использован в различных средах разработки, таких как Jupyter Notebook, PyCharm, IntelliJ IDEA и других. При необходимости можно установить и настроить среду разработки исходя из личных предпочтений.

Шаг 3️⃣ Использование Apache Spark
После установки и настройки среды разработки, можно начать использовать Apache Spark. Необходимо создать конфигурацию SparkSession:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("appName").getOrCreate()


Этот код создает новую SparkSession с именем appName. Затем можно загрузить данные и выполнить над ними различные операции. Например, можно загрузить данные из файла CSV с помощью команды:

df = spark.read.csv("path/to/file.csv", header=True)

Эта команда загружает файл CSV и создает DataFrame, который можно использовать для выполнения операций:

df.show()
df.printSchema()
df.select("column_name").show()


Для применения более сложных операций можно использовать функции Spark SQL или Spark DataFrame API.

Шаг 4️⃣ Оптимизация производительности
Apache Spark может обрабатывать огромные объемы данных, но производительность может быть улучшена с помощью некоторых оптимизаций.

Один из способов улучшения производительности - это кэширование данных. Кэширование помогает избежать повторной загрузки или обработки одних и тех же данных при повторном использовании.

df.cache()

Также можно управлять ресурсами и параллелизмом операций, настраивая параметры Spark.

Шаг 5️⃣ Запуск на кластере
Apache Spark может работать на кластере, используя платформы, такие как Apache Mesos, Hadoop или Kubernetes. Для запуска Apache Spark на кластере, важно настроить необходимые параметры конфигурации и после этого можно будет запустить задачи на кластере.

Это основы работы с Apache Spark. Среда является мощным инструментом для обработки и анализа больших объемов данных, поэтому изучение этой среды может быть очень полезно для различных инженеров и аналитиков данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
The Big Book of Data Engineering.

Бесплатная книга от Databricks, в ней можно найти информацию о том, как:

✔️ Разработать аналитику реального времени в точке продаж

✔️ Построить кибербезопасный центр обработки данных (lakehouse)

✔️ Разблокировать потенциал медицинских данных

✔️ Организовать жизненный цикл обработки данных на платформе Databricks Lakehouse

Скачать

#de #databricks #lakehouse
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔1
Apache Kafka: Основы и преимущества

Apache Kafka — это платформа для распределенной обработки данных, которая позволяет передавать и обрабатывать потоки данных в реальном времени. Он был создан в начале 2010 года в компании LinkedIn и стал открытым исходным кодом в 2011 году. С тех пор он стал одним из самых популярных инструментов для обработки потоков данных.

В чем же основные преимущества Kafka?

1️⃣ Высокая производительность
Kafka проектировался для работы с высокими скоростями обработки и передачи данных. Он позволяет обрабатывать миллионы сообщений в секунду, обеспечивая высокую скорость передачи данных в режиме реального времени.

2️⃣ Гибкость
Kafka является гибкой платформой, которая может использоваться для различных целей, включая передачу данных, логирование, аналитику и многое другое. Он поддерживает несколько типов клиентских приложений, включая Java, Python, C++, Ruby и другие.

3️⃣ Масштабируемость
Kafka позволяет легко масштабировать свою инфраструктуру для обработки большого объема данных. Он может работать на кластерах серверов, предоставляя возможность добавлять и удалять узлов, не прерывая процесс обработки данных.

4️⃣ Надежность
Kafka обеспечивает высокий уровень надежности и отказоустойчивости. Он сохраняет все сообщения, которые передаются через него, позволяя обрабатывать их позже в случае сбоев в системе. Кроме того, Kafka применяет стратегии репликации для обеспечения сохранности данных в случае сбоя в узле кластера.

5️⃣ Эффективное использование ресурсов
Kafka использует мало ресурсов для работы, что делает его легким для развертывания на серверах. Кроме того, поддержка многопоточности позволяет использовать все ядра процессора для обработки данных.

Apache Kafka является мощной платформой для обработки и передачи потоков данных. Его высокая производительность, гибкость, масштабируемость, надежность и эффективное использование ресурсов делают его отличным выбором для любого приложения, работающего с потоками данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
😁5
SQL (Structured Query Language) - это язык программирования для работы с реляционными базами данных. С помощью SQL можно создавать, изменять и удалять таблицы, а также извлекать данные из них.

Понимание языка SQL важно для всех, кто работает с базами данных, включая разработчиков, аналитиков данных и администраторов баз данных.

Основные команд SQL:

1️⃣ SELECT - команда SQL, которая извлекает данные из таблицы бд. Синтаксис:


SELECT column_name(s)
FROM table_name;


2️⃣ WHERE - используется для фильтрации данных. То есть, можно выбирать только те строки, которые удовлетворяют определенному условию. Пример:


SELECT *
FROM table_name
WHERE column_name = 'value';


3️⃣ INSERT INTO - используется для добавления новых записей в таблицу. Синтаксис:


INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);


4️⃣ UPDATE - используется для обновления существующих записей в таблице. Синтаксис:


UPDATE table_name
SET column1 = value1, column2 = value2
WHERE some_column = some_value;


5️⃣ DELETE - команда SQL, которая удаляет записи из таблицы. Синтаксис:


DELETE FROM table_name
WHERE some_column = some_value;


6️⃣ CREATE TABLE - используется для создания новой таблицы в базе данных. Синтаксис:


CREATE TABLE table_name (column1 datatype, column2 datatype, column3 datatype);


7️⃣ ALTER TABLE - используется для изменения структуры существующей таблицы. Синтаксис:


ALTER TABLE table_name
ADD column_name datatype;


8️⃣ DROP TABLE - используется для удаления таблицы из базы данных. Синтаксис:


DROP TABLE table_name;


Это только начало изучения SQL. Для более глубокого понимания и более сложных запросов SQL можно использовать множество различных функций и операторов, таких как JOIN, GROUP BY, ORDER BY и многие другие.

Но начав с основных команд SQL, можно легко заглянуть внутрь базы данных и извлекать необходимую информацию.

#sql #beginner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
DBT (Data Build Tool) - это открытый инструмент, который становится все более популярным в области обработки данных. DBT служит механизмом управления и трансформации данных в повторяемом и модульном формате. Этот процесс работы с данными называется DataOps.

▶️ Одной из ключевых особенностей DBT является его фокус на использовании SQL в качестве основного синтаксиса для преобразования данных. DBT следует принципам SQL очень близко. Это означает, что, даже если пользователь новичок в DBT, начать работу вам будет проще если уже есть понимание в SQL.

▶️ Еще одним важным преимуществом DBT является его способность управлять сложными трансформациями данных. Это особенно важно в контексте крупных проектов с большим объемом данных, которые требуют значительного количества очистки, агрегации и преобразования. DBT упрощает этот процесс, позволяя разработчикам определять преобразования с помощью модульных конфигурационных файлов, которые могут быть протестированы, зафиксированы в версиях и пройти проверку.

▶️ Одним из наиболее важных принципов DBT является использование общей схемы данных. Это означает, что вместо работы на индивидуальной проектной основе DBT позволяет командам сотрудничать над общим набором данных, который можно использовать в нескольких проектах. Такой подход повышает консистентность данных, снижает число ошибок и упрощает поддержку данных при изменении проектов.

▶️ DBT также предоставляет мощные возможности интеграции с современными инструментами по обработке данных, такими как Snowflake и BigQuery. В результате разработчики могут использовать мощные инструменты, которые входят в их обычный рабочий процесс, для трансформации и управления данными. Эта интеграция позволяет командам работать более эффективно и снижает число ручных процессов в управлении данными.

🔥 DBT - это отличный инструмент, который помогает разработчикам управлять и трансформировать данные в консистентном, легком для понимания и поддержки формате.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
😁4💩2
😁2
SQL и хранилищам данных, полезные ссылки по теме:

🟡PostgreSQL

🔘Домашняя страница базы данных

🔘Что такое PostgreSQL? (краткие сведения)

🔘Документация к PostgreSQL 14.5 на русском языке

🔘Курс молодого бойца PostgreSQL

🔘Подборка статей

🔘Язык SQL

🟢Архитектура хранилищ данных

🔘Хранилище данных: понятия

🔘Архитектура хранилищ данных: традиционная и облачная

🔘Что такое хранилище данных?

🔘Публикации, рассказывающие о хранилищах данных, подборка Habr

🔘Обзор гибких методологий проектирования DWH

🔘Особенности построения хранилища данных на базе ClickHouse в Yandex Cloud

🔘Создание Data Lake и Warehouse на GCP

#sql #postgres #dwh #clickhouse #datalake
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
⭐️ Elasticsearch - это одна из самых популярных поисковых систем в мире, которая используется для хранения и быстрого поиска большого объема данных. Она основана на Apache Lucene и предоставляет широкий набор функций для работы с данными любого размера и типа.

🍀 Одна из ключевых особенностей Elasticsearch - это его распределенная архитектура. Он позволяет разбивать данные на несколько индексов и распределять их на разные серверы, что обеспечивает высокую доступность и масштабируемость. В случае сбоя одного из серверов, Elasticsearch позволяет перенаправить запросы на другой сервер без прерывания работы системы.

📕 Elasticsearch также предоставляет дополнительные возможности для работы с данными, такие как механизмы аналитики, машинного обучения и интеграции со сторонними приложениями. Он также обладает мощным языком запросов, который позволяет выполнять сложные запросы и агрегации данных.

📌 Кроме того, Elasticsearch имеет расширяемую архитектуру, которая обеспечивает возможность создания собственных плагинов и расширений. Это позволяет создавать решения с высокой производительностью и гибкостью в зависимости от потребностей проекта.

📌 В целом, Elasticsearch - это мощный инструмент для работы с большими объемами данных, который обладает высокой производительностью, масштабируемостью и расширяемостью. Он позволяет быстро и эффективно обрабатывать сложные запросы и аналитику данных, что делает его популярным выбором для различных проектов и приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
😁5
Преобразование данных с помощью SQL и SCD2: строим эффективные BI-решения

Две ключевые концепции, которые пригодятся специалистам по бизнес-аналитике и базам данных: SQL (Structured Query Language) и SCD2 (Slowly Changing Dimension Type 2). Они играют неотъемлемую роль в обработке, хранении и анализе данных для оптимизации принятия решений на различных уровнях управления предприятием.

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

SCD2 Slowly Changing Dimension (медленно изменяющееся измерение) – это концепция хранения исторической информации об изменениях во времени. SCD2 является одним из подходов к реализации медленно изменяющихся измерений и используется в хранилищах данных и BI-системах для сохранения и анализа истории изменений во времени.

SCD2 позволяет сохранять несколько версий строки данных с учетом периода их действия. Главными особенностями подхода SCD2 являются наличие двух дополнительных столбцов в таблице: дата начала действия записи (effective date) и дата окончания действия записи (expiration date).

Использование SQL и SCD2 для создания эффективных BI-решений Сочетание SQL и принципов SCD2 делает возможным создание эффективных BI-решений для анализа исторических изменений на уровне отдельных записей данных. Благодаря применению SCD2, аналитики могут использовать SQL-запросы, чтобы находить тренды и изменения, связанные с различными временными периодами.

Овладение SQL и понимание принципов SCD2 являются неотъемлемыми инструментами для специалистов по бизнес-аналитике и базам данных. Вместе эти методологии позволяют эффективно управлять данными, отслеживать историческую динамику и принимать заслуженные основанные на данных решения.
👍3