Співбесіда з Big Data Engineer. Понад 200 запитань, практична частина і задачі на логіку
Що мають знати Big Data інженери, аби влаштуватися в ІТ-компанію? DOU зібрав приклади реальних запитань від фахівців, які проводять співбесіди у цій галузі. У добірці є приклади для Big Data інженерів рівня Junior, Middle і Senior, а також кілька практичних задач і коментарі експертів.
Сподіваємося, цей матеріал доможе вам потренуватися перед інтерв’ю, відчути себе впевненіше й актуалізувати свої знання у галузі Big Data. Пам’ятайте: це лише орієнтир, а не повний чи вичерпний ґайд. Якщо ви проходите чи проводите співбесіди в цьому напрямі, будемо раді вашим доповненням в коментарях.
Попередні матеріали цієї рубрики читайте за тегом «100 техпитань».
🎓JUNIOR
- Що таке Big Data і чим відрізняється від традиційних підходів до обробки даних?
- Що означає концепція 5V у контексті Big Data?
- Які інструменти для візуалізації даних вам відомі, які з них використовуєте у роботі?
- Що таке не структуровані, слабко структуровані та структуровані дані? У чому різниця? Наведіть приклади.
- Що таке база даних і для чого вона використовується?
- Які типи баз даних вам відомі й чим вони відрізняються?
- Чи вмієте використовувати SQL для запитів до даних? Опишіть основні блоки SQL.
- Що таке DDL і DML? Які команди належать до кожного типу?
- Що таке первинний ключ (primary key) і зовнішній ключ (foreign key) у реляційних базах даних?
- Для чого потрібен RIGHT JOIN у базах даних, і чим він відрізняється від інших типів з’єднань?
- У чому різниця між PARTITION BY та GROUP BY у SQL?
- Які типи з’єднань (JOIN) існують у SQL і з яким ви працювали найчастіше?
- Як об’єднати дві таблиці, що не мають первинних ключів?
- У чому різниця між операторами UNION та UNION ALL?
- Що таке індекс у реляційних базах даних і як він покращує роботу з даними?
- Що таке віконні функції (Window Functions) у SQL і як вони відрізняються від агрегатних функцій?
- Для чого використовується HAVING, якщо є WHERE?
- Яке призначення SQL і які основні концепції він охоплює?
- Чи вмієте ви працювати з DDL для управління об’єктами бази даних (створення та зміна таблиць згідно зі схемою)?
- Що таке індекс для таблиць у базах даних і для чого він потрібен?
- Яке призначення і які типи з’єднань (JOIN) є у SQL?
- Чи маєте досвід роботи з TCL для початку, фіксації та відкату транзакцій?
- Ми хочемо дізнатися кількість унікальних користувачів, які купили будь-який товар у конкретному магазині за певний період. Чи правильно написаний цей запит?
- Який результат поверне цей запит?
- Який порядок виконання команд у цьому SQL-запиті?
- Що таке Data Lake і для чого використовується?
- Що таке Stage Zone і які завдання виконує в обробці даних?
- Що таке HDFS (Hadoop Distributed File System) і як забезпечує зберігання та обробку даних?
- Які формати даних вам відомі (JSON, CSV, Avro тощо) і як вони працюють?
- Які переваги та недоліки мають NoSQL бази даних при роботі з великими даними?
- Що таке партиціонування і як воно використовується в базах даних (SQL та NoSQL) або системах зберігання даних?
- Що таке batch job і чому важливо розуміти принципи його роботи?
- У чому різниця між цілісністю даних (data integrity) та денормалізацією? Коли доцільно використовувати денормалізацію?
- Чим відрізняються dimension tables від fact tables?
- Що таке DAG (Directed Acyclic Graph) у контексті оркестрації даних і яка його роль у побудові конвеєрів обробки даних?
- Які типи тригерів використовують для запуску data pipelines?
- Що таке ідемпотентність та чому вона важлива для batch job? Наведіть приклади. А також наведіть приклади ідемпотентної та не ідемпотентної джоби.
- Вам потрібно написати джобу, яка заливає декілька файлів у папку. Як зробити її ідемпотентною?
- Вам потрібно вставити певну кількість даних у таблицю за допомогою SQL. Як зробити таку джобу ідемпотентною?
- Наведіть приклади форм нормалізації.
- Чим відрізняються dimension tables від fact tables?
- Чим відрізняються структуровані дані від неструктурованих? Наведіть приклади кожного типу.
- Які особливості Python відрізняють її від інших мов програмування?
- Що таке PEP 8?
- Які основні типи даних у Python?
- Що таке лямбда-функції (lambda functions) у Python? Як вони працюють, у яких випадках доцільно їх використовувати?
- Що таке магічні методи (magic methods) у Python, для чого вони потрібні? Чи маєте досвід використання магічних (дабл-андер) методів у Python?
- Що таке comprehensions у Python? Наведіть приклади list comprehension і dict comprehension.
- Як створити список b, що містить квадрати значень зі списку a = [1, 2, 3], використовуючи list comprehension?
- Що таке context manager у Python, навіщо використовується? Чи можна створити власний context manager?
- Що таке декоратори у Python? Які бувають вбудовані декоратори та як створити власний? Наведіть приклади декораторів, з якими ви працювали.
- Що таке ітератори (iterators) і генератори (generators) у Python, чим вони відрізняються? Коли доцільно використовувати кожен з них?
- Чим відрізняються списки (list) від кортежів (tuple) у Python?
- Чи працювали з ключами у словниках (dict) в Python?
- Які основні компоненти входять до складу Hadoop?
- З яких компонентів складається Apache Spark?
- Що таке «ліниве обчислення» (lazy evaluation) у Spark, яку роль воно відіграє в оптимізації роботи?
- Що таке широкі та вузькі залежності (wide and narrow dependencies) у Spark? У чому їхні відмінності?
- Які операції в Spark називаються трансформаціями, а які — діями (actions)? У чому їхня різниця?
- Які формати даних підтримує Spark для обробки?
- Чи можете описати основні компоненти Spark, такі як Spark Core, Spark SQL, Spark Streaming, GraphX і Spark ML?
- Що таке партиція в Spark, як вона впливає на обробку даних?
- Що таке Job, Stage і Task у Spark, яку роль кожен з них відіграє у виконанні завдань?
- Як Spark обробляє дані в пам’яті (in-memory), які переваги це дає?
- Опишіть хмарні сервіси, з якими доводилось працювати найбільше.
- Яка роль Amazon S3 в AWS?
- Що таке EC2 і як його використовують?
- Що таке AWS Lambda і чим він відрізняється від EC2? * AWS використовується як приклад, Azure, GCP здебільшого ± ті самі запитання, але з їхніми аналогічними сервісами.
- Що таке CI/CD і чому ці процеси важливі у розробці програмного забезпечення?
- Які основні етапи охоплює процес CI/CD?
- Чим відрізняються CI (безперервна інтеграція) та CD (безперервна доставка/розгортання)?
- Що таке Kubernetes і яка його основна роль у керуванні контейнерами?
- Як запустити простий контейнер за допомогою Docker?
- Що таке pod у Kubernetes і яке його призначення?
Загальні запитання
Бази даних і SQL
SELECT dates, count(user_id) FROM purchasers_tbl WHERE dates BETWEEN '2024-01-15' AND '2024-02-06' HAVING amount > 0;
SELECT now() FROM my_tbl WHERE Null = Null;
SELECT dates, user_id, sum(amount_dep) amount_dep FROM my_big_table WHERE types = 'VIP' GROUP BY dates, user_id LIMIT 100;
Формати та сховища даних
Інтеграція, обробка, моделювання та оркестрація даних
Python/Основи програмування
Інструменти для роботи з Big Data
Хмарні сервіси*
Операційні процеси
Ольга Томахіна, Senior Data Engineer:
«На інтерв’ю я не очікую, що кандидат знатиме відповіді на всі запитання. Ба більше, завжди додаю problem-solving задачі, які виходять за межі простих питань і які орієнтовані на потреби конкретного проєкту. Рівень складності залежить від позиції, але в кожному випадку важливий не тільки результат, а й процес мислення кандидата.
Особливо ціную, коли кандидат здатен легко розмірковувати під час інтерв’ю, чітко визнавати моменти, де він не має достатньої інформації, та висувати гіпотези про можливі підходи. Я також уточнюю глибину знань, коли кандидат щось озвучує, щоб оцінити його розуміння теми. На жаль, часто кандидат намагається вгадати відповідь, якщо не знає її точно. Це одразу великий мінус, адже набагато краще визнати «не знаю, не мав досвіду, але можу запропонувати ідею, як це могло б працювати».
🎩 MIDDLE
Бази даних і SQL
- Яка різниця між базами даних SQL і NoSQL? Які переваги та недоліки, особливості застосування кожного підходу?
- Що стверджує теорема CAP? У чому відмінність між концепціями AP та CP?
- Чи вмієте ви створювати та оптимізувати складні SQL-запити (підзапити, з’єднання, GROUP BY, HAVING) і працювати з аналітичними функціями?
- Як працюють індекси? У чому різниця між кластерними та некластерними індексами?
- Що таке ACID-властивості? Які проблеми вирішують різні рівні ізоляції транзакцій?
- У яких випадках варто використовувати CTE, а коли краще SQL-підзапити?
- Які методи ви застосовуєте для оптимізації SQL-запитів?
- Які основні переваги та недоліки індексування таблиць у реляційних базах даних?
- Як працюють команди DELETE, TRUNCATE та DROP у SQL? Наведіть приклади використання кожної з них.
- Що таке надлишковість даних (Data Redundancy)? Коли вона є доцільною, а коли — ні? Які методи для її уникнення?
- Що побачить інший користувач В після цієї дії користувачем А?
- Як відпрацює індекс у такому випадку?
- Що таке Data Lake і Data Warehouse? Які основні відмінності між ними, коли доцільно використовувати кожне з рішень?
- Що таке дата-каталог, які приклади дата-каталогів знаєте?
- Чи ознайомлені ви з форматами сховищ Hudi, Iceberg, Delta Lake?
- Що таке колонкова база даних (columnar database) і в яких випадках вона використовується? Наведіть приклади.
- У чому полягає різниця між підходами schema-on-read та schema-on-write?
- З якими Data Warehouse-сховищами ви працювали (наприклад, Redshift, Snowflake, BigQuery)?
- Які формати даних використовують для зберігання колонкових файлів у Big Data проєктах (Parquet, ORC)?
- З якими форматами файлів і джерелами даних (data sources) ви працювали?
- Яка різниця між рядково-орієнтованими та колонково-орієнтованими форматами файлів? Наведіть приклади представників кожного формату.
- Опишіть формати JSON та CSV. В чому різниця? Які особливості? Коли краще застосовувати кожен з них, а коли не варто?
- Опишіть формати Avro та Parquet. Які особливості? Коли краще застосовувати кожен з них, а коли не варто?
- Опишіть багаторівневу стратегію зберігання архівованих даних.
- Чи маєте досвід роботи з Apache Spark? У чому полягає різниця між підходом Spark і MapReduce?
- Як ви організували б обробку великих потоків даних у реальному часі, використовуючи Apache Kafka або Apache Airflow?
- Як забезпечується паралельне виконання джобів у Spark або інших системах обробки даних?
- Що таке Change Data Capture (CDC)? Розкажіть про свій досвід застосування CDC для відстеження змін у даних.
- Які ключові завдання вирішує data catalog під час управління й організації даних у компанії? Що таке ETL та ELT, коли вони використовуються? Які інструменти для ETL найчастіше застосовуються у Big Data проєктах?
- Що таке data lineage, чому вона важлива у проєктах з обробки даних?
- Які підходи ви застосовуєте для налаштування інкрементального завантаження даних (incremental data loading)?
- Як забезпечуєте відповідність вимогам безпеки та стандартам (security and compliance) під час оркестрації робочих процесів?
- Які методи завантаження даних до MPP баз даних ви вважаєте найефективнішими?
- У чому полягають ключові відмінності між star та snowflake схемами?
- Що означають поняття «факти» та «виміри» (facts and dimensions) у Data Warehouse?
- Які механізми використовуєте для відстеження історичних змін у даних?
- Як ви підтримуєте schema evolution у зоні підготовки даних (staging area), коли змінюються вихідні дані?
- Які стратегії забезпечення якості даних використовуєте для Big Data? Як запобігаєте неконсистентності чи втраті даних під час ETL-процесів?
- Які інструменти застосовуєте для управління безпекою, якістю та доступом до даних?
- Які методи для якості даних в Data Warehouse застосовували?
- Що таке стратегія доступу до даних (data access strategy), чому вона важлива для сучасних платформ обробки даних?
- У чому різниця між статичним і динамічним маскуванням даних? У яких випадках доцільно застосовувати кожен з методів?
- Чи писали ви тести якості даних? Які фреймворки використовували для цього?
- Як налаштовуєте моніторинг і сповіщення про якість даних?
- Як би ви спроєктували стратегію індексування для таблиці з великим обсягом операцій читання і запису?
- Як працюють індекси і які їхні переваги та обмеження при роботі з великими обсягами даних?
- Чи є можливість будувати індекси в OLAP базах даних для великих даних? Обґрунтуйте відповідь.
- Які методи оптимізації SQL-запитів застосовуєте для ефективної роботи з великими обсягами даних?
- Які оптимізації у програмних рішеннях зазвичай реалізуєте для роботи з Big Data?
- Що таке AWS Glue і як його можна використовувати для обробки даних?
- Як працюють AWS Glue Job Bookmarks та Glue Data Catalog? Які функції виконують Crawlers у Glue?
- Що таке Amazon Athena, як це використовують для аналітики в AWS?
- Поясніть, як працює AWS Lambda. Які обмеження є для серверлес-архітектури? Що таке Layers у Lambda, яку роль вони виконують?
- Як налаштувати Auto Scaling в Amazon EC2 для автоматичного масштабування ресурсів?
- Які переваги надає Amazon RDS для керування базами даних у хмарі?
- Що таке VPC (Virtual Private Cloud) в AWS, які можливості забезпечує VPC?
- Які методи безпеки рекомендують для захисту даних в AWS?
- Чи маєте досвід налаштування CI/CD пайплайнів? Які технології використовували для автоматизації цих процесів?
- Що таке контейнеризація, як вона пов’язана з CI/CD? Які переваги вона дає в розгортанні застосунків?
- Як CI/CD допомагає знизити ризики під час розгортання нових версій програмного забезпечення?
- Як створюється Dockerfile, яка його мета? Які ключові команди зазвичай використовують у Dockerfile?
- Що таке Service у Kubernetes, як він забезпечує доступ до подів?
- Як працює Docker Compose, у яких випадках доцільно його застосовувати?
- Що таке MapReduce і як він працює?
- Як працює Apache Spark, у яких випадках він краще підходить для обробки даних, ніж Hadoop?
- Чим відрізняються RDD, DataFrames та Datasets у Spark? Поясніть їх визначення, основні операції, переваги та недоліки.
- Які ключові концепції структурованого стримінгу у Spark? Розкажіть про джерела вхідних даних і вихідні канали з прикладами. У чому різниця між мікропакетною обробкою та безперервною обробкою?
- Опишіть процес відлагодження (дебагу) Spark-застосунків та основні методи, що використовуються для цього.
- Що таке Broadcast join у Spark, у яких випадках доцільно його застосовувати?
- Опишіть архітектуру Spark і основні компоненти роботи.
- Чи маєте досвід роботи з Delta Lake і Delta Engine, а також із концепцією lakehouse? Які операції підтримують Delta-таблиці?
- Чи працювали ви з батчевою та стримінговою обробкою даних? У чому особливості цих підходів?
- Як ви працюєте з обробкою даних у режимі реального часу за допомогою Apache Kafka, Apache Flink або інших стримінгових технологій? Які труднощі можуть виникати?
- Як у HDFS досягається fault tolerance? Поясніть роль Name Node та Data Node у цій системі.
- Який дефолтний розмір блока у HDFS? Які переваги та недоліки мають великий і малий розміри блоків?
- Як організувати масштабування обробки даних у розподілених системах? Які фактори треба враховувати при додаванні нових вузлів у кластер?
- Що таке оркестрація обробки даних? Які оркестратори ви знаєте та маєте досвід роботи?
- Чи маєте досвід роботи з Apache Airflow? Можете розказати про найкращі практики роботи з оркестратором?
- Що таке Operator і Hook в Airflow? Чи писали ви власні оператори та хуки?
- Чи доцільно використовувати Apache Airflow як не лише оркестратора, а й середовища для обробки даних? Обґрунтуйте відповідь.
- Чи розумієте ви різницю між статичною та динамічною типізацією? Які переваги та недоліки кожного підходу? Який вид типізації використовується в Python?
- Що таке сувора та слабка типізація? Яку з цих видів типізацій реалізує Python?
- Що таке typing annotations в Python? Чи пропустить функція foo(x: str) на вхід сторокове значення? Для чого існують typing annotations та які переваги вони надають?
- У чому різниця між Tuple та NamedTuple?
- Чи використовували ви контекстні менеджери у Python? Як вони працюють і чи можете написати власний контекстний менеджер?
- Для чого існує модуль collections? Які обʼєкти з цього модулю використовували?
- Які основні шаблони проєктування (design patterns) ви знаєте? Які з них застосовували на практиці?
- Що таке PYTHONPATH і яку функцію він виконує?
- Що таке замикання (closure) у Python і як воно працює?
- Як реалізоване ООП у Python порівняно з іншими популярними мовами? Які унікальні можливості та відмінності є в Python?
- Чи може у класу бути два предки? В яких випадках це доцільно?
- Що таке MRO (Method Resolution Order) у Python і як він визначає порядок виклику методів?
- Як об’єднати Series чи DataFrames за допомогою бібліотеки Pandas?
- Які види автоматичних тестів ви знаєте? Які ви використовували?
- У чому різниця між юніт- та інтеграційними тестами?
- Які бібліотеки в Python використовують для написання тестів?
- Чи потрібно весь код покривати тестами? Як саме? Який відсоток модулів, класів, функцій має бути покритий тестами?
- Поясніть, як працює протокол HTTP. Які є види запитів? З чого складається тіло запиту?
- Що видасть цей код?
- Що видасть цей код і чому?
- У вас є завдання зібрати дані з одного джерела та зберегти їх у Data Lake або Data Warehouse. Опишіть покроково, як ви це зробите, враховуючи етапи збору, обробки та завантаження даних.
- Що необхідно моніторити в процесах обробки даних та управлінні якістю даних (Data Quality)? Які показники чи події можуть свідчити про проблеми, на що слід реагувати?
USER A BEGIN; INSERT INTO users (name) VALUES ('Sasha'); USER B SELECT * FROM users where name = ‘Sasha’;
CREATE TABLE products (id, price VARCHAR(10)); INSERT INTO products (price) VALUES ('10'), ('20'), ('30'), ('40'), ('50'); SELECT * FROM products WHERE price = 30;
Формати та зберігання великих даних
Робота з даними
Інтеграція, обробка та оркестрація даних
Моделювання даних
Управління якістю, безпекою та консистентністю даних
Оптимізація даних
Хмарні сервіси
Операційні процеси, CI/CD та контейнеризація
Інструменти для роботи з Big Data
Python/Програмування
x = 10 y = "5" result = x + y print(result)
def add_numbers(a, b=[]): b.append(a) return b print(add_numbers(5)) print(add_numbers(10))
Практичні задачі
Ростислав Фединишин, Head of Data and Analytics, Practice Leader (Intellias):
«На інтерв’ю важливо, як кандидати розуміють фундаментальні концепції та підходи до роботи з даними. Також потрібне глибоке знання інструментів Big Data та вміння застосовувати їх у реальних задачах. Необхідно звертати увагу на те, наскільки чітко кандидат може пояснити свої технічні рішення, а на рівні Senior — оцінювати лідерські якості, ухвалювати стратегічні рішення та керувати командою.
Кандидат може не підходити, якщо в нього поверхове розуміння концепцій або немає практичного досвіду, якого вимагає ця роль. Варто також переглянути свої проєкти й підготувати приклади з реальних ситуацій, які підкреслюють технічні та комунікаційні навички».
👑 SENIOR
- Чим відрізняється MPP обробка даних від традиційних підходів?
- Які основні компоненти Lambda-архітектури?
- Опишіть типи тестування для систем великих даних.
- Чи маєте ви досвід оптимізації продуктивності запитів у SQL? Які методи для цього використовуєте?
- Чи вмієте ви читати план виконання SQL-запиту, розуміти вплив різних частин запиту та приймати рішення на основі цього плану?
- Коли та як доцільно проводити денормалізацію бази даних?
- У чому різниця між командами TRUNCATE, DELETE та DROP у SQL?
- Що таке некорельовані (Noncorrelated) і корельовані (Correlated) підзапити? Чим вони відрізняються?
- Що таке нормалізація і які існують рівні нормалізації бази даних?
- Які типи баз даних краще використовувати для різних бізнес-задач і вимог (наприклад, реляційні бази, MongoDB, ElasticSearch, DynamoDB, Snowflake, AWS Redshift)?
- Які техніки оптимізації продуктивності запитів ви використовували при роботі з OLAP-базами даних для Bigdata? А які методи оптимізації для створення таблиць? Як прискорити пошук даних у такій системі?
- Як ви забезпечуєте ефективну реплікацію та синхронізацію даних між різними датацентрами або хмарними середовищами у проєктах з Big Data?
- Які підходи ви використовуєте для побудови конвеєрів ETL у Big Data? Як оптимізувати складні трансформації даних і знизити вплив на продуктивність?
- Як ви інтегруєте потоки даних з різних джерел у єдину аналітичну платформу? Які підходи до обробки даних у реальному часі ви використаєте?
- Які стратегії архівування та резервного копіювання даних ви впроваджуєте у Big Data-середовищі? Як вирішуєте питання зберігання історичних даних великих обсягів?
- Чи стикалися ви з ситуаціями, коли завдання (jobs) виконувалися довше, ніж очікувалося? Які методи оптимізації ви використовували для покращення швидкості?
- Що таке incremental data load і які основні типи цього завантаження ви знаєте?
- Які компоненти має містити якісний ETL-конвеєр (pipeline)?
- Як ви керуєте відмовами у потокових системах даних? Які механізми відмовостійкості (fault-tolerance) використовуєте?
- Що таке якість даних (Data Quality)?
- Які стратегії забезпечення якості даних (Data Quality) і моніторингу ви використовуєте у великих проєктах з Big Data? Як можна автоматизувати контроль якості даних?
- Які розмірності якості даних ви знаєте (Data quality dimensions)? Можете навести приклади?
- Що таке Data Governance і як його можна ефективно реалізувати в середовищі Big Data?
- Які основні архітектури даних є? Які їхні переваги та недоліки?
- У чому відмінність між таке Data Lake та Data warehouse? Чи можуть вони існувати одночасно в одній компанії?
- Чи може розподілена система зберігання відповідати вимогам ACID? Якщо так, то в яких умовах?
- Чи може бути база даних одночасно OLAP та OLTP? Якщо так, можете навести приклад?
- Чи кожна OLTP база даних є транзакційною в розумінні ACID?
- У чому полягає різниця між рядковими та колонковими форматами даних?
- Що таке сплітабл (splittable) та нон-сплітабл (non-splittable) формати файлів? У чому їхня різниця?
- Які типи NoSQL баз даних вам відомі? З якими з них ви працювали і які їхні переваги та недоліки?
- Наведіть приклади SQL і NoSQL баз даних. Поясніть сферу застосування кожної.
- Як ви масштабували б систему для обробки даних у реальному часі? Які підходи використовували б для забезпечення швидкодії та стабільності?
- Як забезпечити масштабованість у Big Data системах? Які фактори слід враховувати?
- З якими архітектурами даних (data architectures) вам доводилось працювати?
- Що таке медальна архітектура (medallion architecture)? У чому полягає її основна ідея?
- Що таке каталог даних? Чи потрібен він кожній компанії? Яких виробників каталогів даних ви знаєте? Наведіть приклад функціональності, яким має, на вашу думку, володіти корпоративний каталог даних?
- Як би ви організували контроль якості даних у великій компанії?
- Які методи моделювання сховища даних ви знаєте? Поясніть особливості.
- Який підхід ви застосовуєте до архітектурного планування системи для роботи з великими даними? Які інструменти та технології вибираєте для обробки та зберігання різних типів даних?
- Як за допомогою Apache Spark можна перевірити наявність певного ключового слова у великому текстовому файлі?
- Який інструмент найкраще підходить для створення data ingestion зони, здатної обробляти дані з різних джерел, включно з on-premise та cloud системами?
- Що таке спекулятивне виконання (speculative execution) у Spark і коли воно застосовується?
- Що таке адаптивне виконання (Adaptive Query Execution, AQE) у Spark і які його переваги?
- Чи можете ви описати архітектуру Apache Spark?
- Чи доводилося вам оптимізувати продуктивність застосунків на Spark? Які інструменти та методи для цього використовували?
- Як ви забезпечували безпеку та контроль доступу до даних у Data Lake? Які інструменти або методи використовували?
- Як забезпечити безпеку даних у розподілених системах Big Data?
- Які підходи ви використовуєте для оптимізації обробки великих даних з метою підвищення продуктивності?
- Які методи ви застосовуєте для зменшення часу обробки ETL-процесів?
- Поясніть, що таке Executor в Apache Airflow. Які вони бувають і яке їх застосування?
- Вам потрібно обробляти файли пакетним методом. Обсяг файлів до 1 ГБ. Яке середовище обробки таких файлів ви виберете залежно від того, чи це хмарна екосистема чи on-premise? Обґрунтуйте свою відповідь.
- Вам потрібно написати сервіс, що видаватиме дані через API з Big Data OLAP системи. Яке рішення ви запропонуєте? Чи будете напряму діставати дані за запитами? Запропонуйте декілька рішень.
- Які обмеження на кількість партицій існують при використанні CTAS в AWS Athena?
- Чи доводилося вам використовувати доступ між обліковими записами (cross-account access)? Які практичні складнощі виникали і як їх вирішували?
- Яку роль відіграє Amazon CloudFormation в автоматизації розгортання інфраструктури? Які інші технології ви використовували для схожих завдань?
- У чому полягає різниця між Amazon EMR та Glue Jobs?
- Як оптимізувати щоденне зчитування терабайтів даних з іншого AWS-регіону?
- Які сервіси AWS ви використовували для моніторингу та підтримки продуктів?
- Які класи зберігання існують у S3? Які опції є для зміни класу зберігання об’єктів у S3?
- Які опції надає AWS для виконання Spark-застосунків?
- Що таке blue-green деплоймент, як він реалізується в CI/CD?
- Які виклики та ризики можуть виникнути при впровадженні CI/CD у великих організаціях?
- Що таке статистичні аналізатори коду і яку користь вони приносять у процесі розробки?
- Як реалізувати безперервну інтеграцію та розгортання (CI/CD) з використанням Docker та Kubernetes?
- Як забезпечити стійкість і відмовостійкість контейнеризованих застосунків у Kubernetes?
- Які методи безпеки варто застосовувати в роботі з Docker і Kubernetes для захисту контейнерів і кластерів?
- Розкажіть про IaC-підхід. Які його недоліки та переваги? Які IaC-інструменти ви знаєте?
Загальні питання про Big Data
Бази даних і SQL
Робота з даними
Архітектура та моделювання даних
Інструменти для роботи з Big Data
Хмарні сервіси
Операційні процеси
Додатковий блок для всіх рівнів: логічні запитання
- У вас є два джерела, що містять однакові дані (наприклад, кількість продажів за днями). В одному джерелі загальна сума становить 100 млн, а в іншому — 101 млн. Як ви можете визначити, якому джерелу даних можна довіряти?
- Дві годинникові стрілки на циферблаті показують 12:00. Скільки разів за добу хвилинна та годинна стрілки повністю збігаються одна з одною?
- Якщо в
10-поверховому офісі на кожному поверсі працюють 1=10 людей, 2=20 людей, 3=10 людей, 4=5 людей, 6-9=40 людей і на 10-му=80 людей, на яку кнопку поверху ліфта частіше всього натискають? - Якщо ви пілот літака, який рухається від Києва до Стамбула зі швидкістю 1200 км/годину, при цьому в літаку перебувають 13 дівчат і 18 хлопців, середня вага пасажирів 68,52156 кг на людину. Також є вантаж у кількості 62 валізи, 12 ящиків води, 2 коробки сухого пайка, 5 котів у клітках і 6 собак в окремих вольєрах. Як звати пілота літака?
Цей матеріал підготували завдяки допомозі фахівців і підтримці спільноти Data Engineering UA. Дякуємо за надані запитання:
- Олександру Черніну, Data Engineer, власник продукту Data Life UA
- Ростиславу Фединишину, Head of Data and Analytics, Practice Leader в Intellias
- Тарасу Озарківу, BigData Architect в SoftServe
- Юлії Шологон, Senior Big Data Architect в SoftServe
- Ользі Томахіній, Senior Data Engineer в Binariks
- Чакалову Олександру, Senior Big Data Developer at N-iX
- Павлу Приймаку, Software/Data Architect в EPAM
Окремо — подяка рецензентам:
- Андрію Забавському, Big Data Architect в SoftServe
- Віктору Шитюку, Head of Data Governance Department в PrivatBank
- Андрію Панченку, Data Engineer at BeetsBytes та засновнику Data Engineering UA.
6 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.