DBT – мессия, блажь или реальность дата-инженера?
8 октября приглашаем вас на бесплатный вебинар от учебного центра Слёрм! Встретимся с опытными специалистами из мира big data, чтобы обсудить:
👉🏻 Как управлять жизненным циклом данных в мире победившего Modern Data Stack?
👉🏻 Могут ли современные инструменты преобразить процесс Data Governance и сделать его простым и быстрым?
👉🏻 Как разные компании и команды применяют dbt для решения задач Data Governance?
Эксперты встречи:
— Евгений Ермаков, руководитель платформы данных Tоlоkа.аi
— Николай Марков, Data Platform Lead в Altenar, спикер курсов Слёрма и ментор проекта «Где дата, Коль?»
📌 Когда: 8 октября в 19:00 мск
📌 Занять место на вебинаре — через бота.
erid: LjN8KZrpZ
Стоимостной подход в SQL
Стоимостной подход - это один из методов оптимизации запросов в SQL. Он основывается на том, что оптимальный план запроса может быть выбран путем оценки стоимости каждого возможного плана и выбора того, который имеет наименьшую стоимость.
Для выполнения данного запроса в SQL сервере может быть несколько возможных планов, например:
1. Сначала выполнить выборку из таблицы customers, затем из orders. Далее объединить результаты с помощью оператора JOIN по customer_id.
2. Сначала выполнить выборку из таблицы orders, затем из customers. Далее объединить результаты с помощью оператора JOIN по customer_id.
3. Использовать индексы на таблицах для выполнения быстрой выборки.
Для выбора наилучшего плана выполнения запроса SQL-сервер оценивает стоимость каждого плана, исходя из статистики таблиц, наличия индексов и других факторов.
Например, если таблица customers содержит много строк и немного соответствующих строк в таблице orders, то выборка из таблицы customers должна быть выполнена первой, чтобы уменьшить количество строк, которые нужно объединять с таблицей orders. Таким образом, стоимостной подход позволяет выбирать наиболее эффективный план выполнения запроса, что ускоряет работу SQL-сервера и сокращает время выполнения запросов.
#Вопросы_с_собеседования
Что такое сущности и отношения?
Объект представляет собой абстракцию набора связанных данных и представлен в виде таблиц . Отношения определяют, как объекты связаны друг с другом.
Например, предположим, что у нас есть две таблицы с именами orders и users. Наши orders и users являются нашими сущностями.
Мы можем представить, что у одного пользователя может быть много заказов. Таким образом, пользователи могут иметь отношения «один ко многим» с заказами. Сущности и отношения часто используются в процессе разработки схемы таблицы. Понимая, как определять объекты и отображать их отношения, вы показываете, что можете продуктивно работать в коллективном сеансе проектирования таблиц базы данных.
👩💻 Программирование теперь в Telegram!
Вот 10 обучающих каналов по самым востребованным направлениям в IT.
Выбирай своё направление:
👩💻 Python: @python_ready
👩💻 Java: @java_ready
👩💻 Backend: @backend_ready
👩💻 Frontend: @code_ready
👩💻 Весь IT: @roadmap_ready
👩💻 C#: @csharp_ready
👩💻 C/C++: @cpp_ready
🖥 Базы Данных & SQL: @sql_ready
📖 IT Архив: @archive_ready
🖥 Design: @time_design
📌 Ресурсы, гайды, шпаргалки, книги и задачи для каждого языка программирования.
Используйте умные ссылки – создавайте и настраивайте сервисы для динамического управления редиректами
Как именно, спросите вы?
А очень просто: приходите на открытый урок OTUS «Проектирование сервиса умных ссылок»
Вы узнаете:
- как спроектировать сервис умных ссылок и создавать ссылки с динамическими правилами редиректа
- как настраивать редирект в зависимости от геолокации, устройства пользователя и других параметров
- как разрабатывать и оптимизировать масштабируемый и гибкий сервис умных ссылок
Вебинар проведёт действующий директор компании по разработке ПО, в прошлом – профессиональный разработчик на C++
👨💻🛠👨🏻💻 Будет интересно: бэкенд-разработчикам, фулстек-разработчикам, техническим архитекторам
📅 8 октября, 20:00
🆓 Бесплатно. Урок в рамках старта курса «Microservice Architecture»
🔴 Записаться на открытый урок: https://clck.ru/3DeVyxРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#Вопросы_с_собеседования
❓Опишите различные типы индексов
Есть три типа индексов, а именно:
1. Уникальный индекс (Unique Index): этот индекс не позволяет полю иметь повторяющиеся значения, если столбец индексируется уникально. Если первичный ключ определен, уникальный индекс может быть применен автоматически.
2. Кластеризованный индекс (Clustered Index): этот индекс меняет физический порядок таблицы и выполняет поиск на основе значений ключа. Каждая таблица может иметь только один кластеризованный индекс.
3. Некластеризованный индекс (Non-Clustered Index): не изменяет физический порядок таблицы и поддерживает логический порядок данных. Каждая таблица может иметь много некластеризованных индексов.
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift
#Вопросы_с_собеседования
Объясните разницу между INNER JOIN и LEFT JOIN в SQL и приведите пример ситуации, в которой каждый из них наиболее подходит
INNER JOIN в SQL возвращает строки, когда есть совпадение в обеих таблицах, в то время как LEFT JOIN возвращает все строки из левой таблицы и совпадающие строки из правой таблицы; строки, для которых нет совпадений в правой таблице, будут иметь NULL в этих столбцах. INNER JOIN подходит, когда необходимо найти точные совпадения между таблицами, тогда как LEFT JOIN используется, когда нужно включить все записи из одной таблицы, даже если соответствующих совпадений в другой таблице нет.
#Вопросы_с_собеседования
Какое основное различие между внешним и внутренним соединением в SQL?
Внешнее соединение возвращает все строки из левой таблицы, даже если в правой таблице нет сопоставленных строк. Внутреннее соединение возвращает только строки, которые имеют сопоставленные строки в обеих таблицах.
Этот вопрос является сложным, потому что он требует понимания основ соединения таблиц в SQL. Внешние и внутренние соединения - это два основных типа соединения таблиц, и важно понимать, как они работают, чтобы правильно писать запросы.
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Count (1) вместо count (*)
При любой возможности выбирайте count(1) вместо count(*). Оператор count(*) принимает в расчет все столбцы таблицы для выполнения вычислений, тогда как count(1) учитывает только первый столбец.
Обратите внимание, что результат остается неизменным, будь то count (*) или count (1).
При использовании count(1) движок базы данных задействует меньше ресурсов и работает быстрее. В случае небольших таблиц эта разница будет незаметна, но если дело касается больших из них, то данный фактор существенно отразится на производительности запросов.
#Вопросы_с_собеседования
❓Для чего используются агрегатные функции?
Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией.
Несколько примеров агрегатных функций: COUNT(), SUM(), MAX(), MIN(), AVG() и ROUND().
Вебинар «Возьмите кластеры под контроль»
15 октября в 16:00 на вебинаре команда Tarantool расскажет, как построить высокопроизводительное кластерное хранилище с простым управлением и гарантиями отказоустойчивости. Покажем демо: развернем кластер и продемонстрируем работу с ним из JAVA-приложения с использованием spring data 3.x.
В программе:
-В каких системах вам не обойтись без in-memory хранилища.
-Как легко развернуть «горячее» кластерное in-memory хранилище под ваши задачи и централизованно управлять им через интуитивно понятный графический интерфейс и CLI.
-Как построить геораспределенный кластер, не падающий даже при неустойчивом канале связи или аварии в ЦОДе.
Вебинар будет полезен системным и корпоративным архитекторам, инженерам DevOps и разработчикам высоконагруженных систем.
Регистрация
🔒 6895 ГБ платного контента для программистов выложили в Telegram
Тонны курсов, уроков и видео теперь в открытом доступе:
🖥 Python — 724 ГБ
🖥 Frontend — 981 ГБ
🖥 Backend — 817 ГБ
👩💻 Все языки — 4373 ГБ
Успей подать заявку, пока не удалили
Шпаргалка SQL → Pandas
— выбрать один столбец или несколько из них;
— фильтрация;
— выбор уникальных значений по столбцу;
— подсчет числа значений;
— перечисление названий столбцов и т.д.
#Вопросы_с_собеседования
Объясните разницу между командами DELETE и TRUNCATE
Команда DELETE — это DML-операция, которая удаляет записи из таблицы, соответствующие заданному условию(1 строка на картинке). При этом создаются логи удаления, то есть операцию можно отменить.
А вот команда TRUNCATE — это DDL-операция, которая полностью пересоздаёт таблицу, и отменить такое удаление невозможно(2 строка на картинке).
#Вопросы_с_собеседования
❓Что такое строковые функции в SQL?
Строковые функции SQL используются в основном для обработки строк. Некоторые из широко используемых строковых функций SQL представлены ниже:
• LEN () — возвращает длину значения в текстовом поле.
• LOWER () — преобразует символьные данные в нижний регистр
• UPPER () — преобразует символьные данные в верхний регистр
• SUBSTRING () — извлекает символы из текстового поля.
• LTRIM () — Это удалить все пробелы в начале строки.
• RTRIM () — удалить все пробелы в конце строки.
• CONCAT () — функция Concatenate объединяет несколько символьных строк вместе.
• REPLACE () — для обновления содержимого строки.
💸 Вакансии для IT'шников
Выбери своё направление ⤵
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
#вопросы_с_собеседований
Имеет ли значение порядок колонок в составном индексе?
Да, порядок колонок в составном индексе имеет значение.
Рассмотрим пример:
У нас есть таблица orders с колонками order_id, customer_id, order_date, product_id и quantity. Нам необходимо создать составной индекс для ускорения поиска заказов по customer_id и order_date.
Мы можем создать два индекса:
1. Индекс по (customer_id, order_date)
2. Индекс по (order_date, customer_id)
В первом случае, запросы с условием WHERE customer_id = ? AND order_date = ? будут выполняться быстрее, так как эти колонки находятся в порядке, указанном в индексе.
Во втором случае, запросы с условием WHERE order_date = ? AND customer_id = ? будут выполняться медленнее, так как порядок колонок не соответствует порядку в индексе.
Таким образом, порядок колонок в составном индексе имеет значение и должен соответствовать порядку, в котором используются колонки в запросах.
Объяснение Запроса
Подзапрос: Здесь используется подзапрос для выбора CustomerID из таблицы Orders, группируя по CustomerID и применяя условие HAVING COUNT(OrderID) > 2. Это выбирает клиентов, сделавших более двух заказов.
Объединение (JOIN): Основной запрос использует JOIN для соединения таблиц Customers и результата подзапроса по CustomerID.
Условие WHERE: Фильтрация происходит по полю City в таблице Customers, чтобы выбрать только тех клиентов, которые находятся в "New York".
Этот запрос тестирует понимание кандидата в области объединения таблиц, работы с агрегатными функциями и подзапросами, а также фильтрации данных в SQL.
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
SQL Server: GETUTCDATE
GETUTCDATE - это функция даты и времени в SQL Server, которая возвращает текущую дату и время в формате UTC. UTC - это стандартный формат времени, используемый для избежания расхождений часовых поясов и обеспечения согласованности в разных часовых поясах. В отличие от функции GETDATE, которая возвращает текущую локальную дату и время, GETUTCDATE всегда возвращает текущую дату и время в формате UTC.
Как работает GETUTCDATE?
GETUTCDATE - это недетерминированная функция, что означает, что она возвращает разное значение каждый раз при вызове, даже в рамках одного оператора. Она извлекает текущую дату и время из операционной системы сервера, на котором работает SQL Server, а затем преобразует его в формат UTC. Результатом является значение datetime с точностью 3,33 миллисекунды.
💻Antares SQL — удобный и простой open-source SQL-клиент
— sudo apt install antares
Antares SQL — это современное приложение, созданное с упором на простоту и UX, про производительность тоже не забыли
🟡 GitHub
Секреты успешных аналитиков: почему визуализация данных — ваш лучший друг!
Уже владеете Excel, но не умеете представлять данные так, чтобы впечатлять и руководителя, и клиентов?
24 сентября приходите на бесплатный мастер-класс по визуализации данных для аналитиков, чтобы под руководством эксперта научиться строить красивые и информативные графики: три вида графиков Excel за полтора часа. Бесплатно!
Что будет на мастер-классе:
- основы визуализации для аналитиков;
- что такое хорошая визуализация;
- построение и оформление трех видов графиков в Excel;
- карьерные бонусы и подарки для всех участников.
Мастер-класс проведет тимлид «ПРОФИ» и эксперт школы аналитики Changellenge >> Education Михаил Титков.
📅 Дата: 24 сентября
🕒 Время: 19:00 Мск
📍 Формат: онлайн
💵 Стоимость: бесплатно
Хотите превращать свой анализ в легко воспринимаемую визуальную историю? Регистрируйтесь на мастер-класс по ссылке >> https://u.to/1L-hIA
Реклама. ООО «Высшая школа аналитики и стратегии». ИНН 7716917009. erid: 2VtzqwBHw28
Sqlelf
Инструмент, использующий функциональность виртуальной таблиц Sqlite, позволяющий исследовать объекты Linux ELF с помощью SQL.
ELF (англ. Executable and Linking Format — это формат исполнимых и компонуемых файлов) — формат исполняемых двоичных файлов, используемый во многих современных UNIX-подобных операционных системах, таких как FreeBSD, Linux, Solaris и др.
Традиционно изучение файлов ELF ограничивалось такими инструментами, как objdump или readelf. Несмотря на то, что эти инструменты обладают широкими возможностями синтаксического анализа, формат вывода и возможность задавать исследовательские функции инструментов довольно ограничены.
▪ Github