Англійська для розробників Snowflake
Освоєння англійського словника, який розробники Snowflake використовують для складів, мікророзділів і подорожей у часі під час обговорення роботи платформи даних з командою.
Розділення Snowflake зберігання і обчислень означає, що його англійська лексика так само стосується вартості і одночасності, як і SQL. Команда, яка обговорює «склад», може мати на увазі обчислювальний кластер, а не дані — і отримання цього розрізнення неправильно в розмові про вартість може відправити все дослідження в неправильному напрямку. Цей підручник містить інформацію про англійську мову, яку використовують під час обговорення роботи з Snowflake з командою.
Ключовий словник
** Віртуальний склад ** — кластер обчислювальних ресурсів, які ви використовуєте для виконання запитів, з розрахунком за секунду виконання, незалежно від місця зберігання даних.
- “Давайте збільшимо розмір сховища ETL до Великого для цього завантаження, а потім зменшимо його, щоб не платити за неактивні обчислення.” *
** Мікророзділ ** — невеликі, незмінні, автоматично керовані шматки, у яких Snowflake зберігає дані таблиці, кожен з яких містить метадані, які використовуються для обрізання даних під час планування запиту. “Запит сканує набагато більше мікророзділів, ніж очікувалося — це зазвичай означає, що ключ кластеризації не вирівняно з нашою колонкою фільтра.”
** Ключ кластеризації ** — стовпчик або вираз, який використовується для співрозташування пов’ язаних рядків у мікророзділах, що покращує обрізання для запитів, які фільтрують за цим стовпчиком або виразом.
“Ми повинні додати ключ кластеризації на event_date — зараз кожен запит, що фільтрує за датою, має сканувати розділи по всій таблиці.”
** Подорож у часі ** — функція, яка надає вам змогу робити запити, клонувати або відновлювати таблицю у вигляді, у якому вона існувала у попередній момент часу, у межах налаштованого вікна зберігання. “Перед запуском заповнення, давайте перевіримо, чи ввімкнено подорожі у часі з достатньою кількістю часу, щоб ми могли повернути назад, якщо числа виглядають неправильно.”
** Клонування з нульовою копією ** — створення повної логічної копії таблиці або бази даних, яка ділить базове сховище доки не буде змінено одну з копій, що робить її майже миттєвою і вільною у час створення.
- “Замість експорту і перезавантаження повної копії для тестування, просто клонуйте з нульовою копією виробничу схему у базу даних розробників.” *
** Автоприпинення роботи складу ** — параметр, який автоматично припиняє роботу віртуального складу після певного періоду бездіяльності, припиняючи облік до наступного запиту, який відновлює його роботу. “Встановить автоматическое приостановление на 60 секунд на этом специальном складе - он остался бездействующим всю ночь и накапливает издержки.”
Звичайні фрази
- «На якому сховищі працює цей запит, і чи є він розміром відповідно до завантаження?»
- «Чи ми скануємо непропорційну кількість мікро-розділів тут — чи повинні ми переглянути кластерний ключ?»
- Чи можемо ми клонувати цю схему для тестового середовища замість повторного вживання даних?»
- Чи достатньо довго зберігається подорож у часі на цьому столі, щоб відновити його після поганого навантаження?
- «Чи налаштовано автоприпинення на цьому сховищі, або він працює бездіяльно між роботами?»
Приклади висловлювань
Перегляд аномалії вартості: “Спік слідує за складом, який хтось створив як X-Large для одноразового заповнення і ніколи не зменшував його — додамо правила автоматичного припинення, щоб це не повторилося.”
Пояснення рішення про проектування:
- “Ми обирали ключ кластеризації на основі ідентифікатора користувача, оскільки майже всі наступні запити фільтруються за користувачем, отже, обрізка цього стовпчика дає нам найбільше зменшення сканування.” *
Опис події:
- “Ми використовували подорож у часі, щоб відновити таблицю до стану, який був до виконання помилкового команди злиття, що дозволило нам відновити таблицю без необхідності резервного копіювання минулої ночі.” *
Професійні поради
- Використовуйте “sklad”, щоб мати на увазі обчислення, а не дані — у розмовах Snowflake це є поширеним джерелом плутанини для новачків з традиційного досвіду роботи зі складами даних.
- Під час обговорення повільних запитів, запитайте “скільки розділів було скановано, а скільки було потрібно?” — це стандартне формулювання для проблеми обрізання в англомовних командах з обробки даних.
- Використовуйте « клон з нульовою копією » точно — це сигналізує про те, що ви розумієте поведінку спільного використання пам’ яті, а не просто « ми зробили копію »
- Розрізняти “auto-suspend” (призупинити обчислення) від “auto-resume” (перезапустити при наступному запиту) при поясненні поведінки складських витрат.
Практичні вправи
- Поясніть у двох реченнях, чому погано обраний ключ кластеризації збільшує вартість запиту.
- Напишіть рекомендацію у одному реченні щодо зменшення витрат на складі, який не працює.
- Опишемо вашими словами, коли використовувати клонування з нульовою копією замість повного експорту даних.
На практиці: Навігація нюансів в спільних дискусіях
Будьмо чесними - вивчення професійної англійської як розробника - це більше, ніж просто запам’ятовування списків слів. Це розуміння того, як використовуються ці слова, тонкі відтінки значення, які можуть вплинути на спілкування, і як чітко і впевнено сформулювати свої думки в командному середовищі. Багато нерідних носіїв неохоче вносить свій внесок у зустрічі або дискусії, бояться неправильного тлумачення або звучать надто формально. Це особливо вірно при обговоренні технічних концепцій, таких як архітектура Snowflake - такі терміни, як “мікро-розділ”, “подорожі у часі” і “склад” можуть здатися залякуванням просто через їх специфічний жаргон.
Поширений сценарій виникає під час перегляду коду. Сара, розробник, який недавно приєднався до команди, надсилає запит на збирання для оптимізації запиту, який працює повільно. Головний інженер, Марк, залишає коментар: «Це хороший початок, але чи можете ви розібратися, * чому * ви обрали цей конкретний підхід? Не відразу зрозуміло, як це вирішує проблему з обмеженням продуктивності. ” Сара, відчуваючи себе трохи в обороні, може інстинктивно відповісти щось на зразок: “Я просто зробив це швидше.” Хоча технічно точна, ця відповідь не має важливого контексту і не запрошує до подальшого обговорення. Ефективнішою формулюванням було б: «Я оптимізував цей запит, зменшивши кількість сканувань на таблиці customer_orders. Я впевнений, що це вирішує проблему, визначену в початковому звіті про ефективність, але я був би вдячний за ваш відгук про те, чи мої міркування чіткі. ” Зауважте, як переглянута відповідь надає виправдання і запрошує до співпраці – ключових елементів професійного спілкування.
Іншим прикладом може бути розмова Slack, в якій обговорюється запланована зміна схеми складу. Младший розробник, Девід, пише: «Я додам нову колонку для цінності клієнта протягом життя». Хоча це коротко, але не передає достатньо інформації. Кращий підхід буде таким: «Я планую ввести нову колонку під назвою customer_lifetime_value в склад customers. Це дозволить нам обчислювати і відстежувати показники CLV з часом, які ми можемо використовувати для информування наших маркетингових стратегій. Я переконаюся, що він правильно індексований для ефективного запиту.” Додаткові деталі демонструють розуміння того, * чому * зміна робиться і її потенційний вплив, сприяючи більш продуктивній розмові.
Крім того, важливо точно вказувати мови опису змін у ваших запитах на завантаження. Замість того, щоб сказати «Я виправив це», розгляньте: «Вреалізовано оптимізацію до запиту мікро-розділу product_inventory, використовуючи функцію TIME TRAVEL для аналізу історичних шаблонів доступу до даних. Це призвело до 15% скорочення часу виконання, як виміряно інструментами моніторингу Snowflake. ” Використання специфічної термінології - * мікро-розділ *, * TIME TRAVEL *, і посилання на внутрішні метрики Snowflake - демонструє експертизу і дозволяє іншим зрозуміти технічні деталі вашої роботи.
-- Example: Using TIME TRAVEL to analyze query performance (Snowflake)
SELECT *
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY(LAST_MAJOR_VERSION => TRUE, START_TIME => CURRENT_TIMESTAMP - INTERVAL '1 HOUR'))
WHERE QUERY_TEXT LIKE '%customer_orders%';
Цей приклад демонструє практичне застосування TIME TRAVEL в Snowflake - основна концепція, яка часто обговорюється в розмовах з оптимізацією продуктивності - демонструючи, як вона використовується для дослідження поведінки запиту. Пам’ ятайте, що чітке і точне спілкування є ключем до ефективної співпраці і успішного завершення проекту.