Приєднується SAP HANA: Типи, синтаксис та приклади

⚡ Розумний підсумок

SAP HANA joins з'єднує таблиці та інформаційні представлення, тому модель повертає саме ті рядки, які потрібні звіту. Внутрішній, зовнішній, посилальний, текстовий, часовий та просторовий типи змінюють продуктивність, обробку потужності та розмір результату.

  • 🔗 Сфера застосування: Об'єднує таблиці зв'язків та інформаційні представлення всередині графічних моделей та всередині простих SQL-інструкцій у базі даних.
  • ☑️ Стандартні типи: Внутрішнє, ліве зовнішнє, праве зовнішнє та повне зовнішнє з'єднання поводяться точно так само, як і в ANSI SQL.
  • Типи лише для моделювання: Посилальні та текстові об'єднання існують лише всередині інформаційних подань і не мають еквівалента ключових слів SQL.
  • 🧪 Розширені вузли: Часові, просторові, динамічні та зіркові з'єднання розширюють можливості обчислень за межі простого зіставлення стовпців.
  • 🛠️ Важелі продуктивності: Кардинальність та прапорець «Оптимізувати об’єднання стовпців» визначають, чи SAP HANA може скорочувати таблицю під час виконання.
  • 📈 Модернізація: Атрибутні та аналітичні подання застаріли, тому нові об'єднання належать до графічних подання обчислень.

Типи об'єднань, що використовуються для об'єднання таблиць та інформаційних подань у SAP ХАНА

Що таке SAP HANA Приєднатися?

Приєднатися SAP HANA об'єднує рядки з двох або більше таблиць, або з таблиці та інформаційного подання, і повертає значення, необхідні для запиту. Об'єднання визначаються графічно у вузлі об'єднання інформаційного подання, а також записуються безпосередньо в SQL-інструкціях, які виконуються в базі даних.

Ці дві форми не ідентичні. З'єднання всередині перегляд розрахунку виконується SAP Обчислювальний механізм HANA, який може пропустити таблицю, якщо з неї не надходить запитуваний стовпець, тоді як об'єднання, написане на SAP HANA SQL завжди виконується точно так, як написано в коді.

Наступні типи об'єднань доступні, коли SAP Таблиці HANA та інформаційні подання об'єднані.

Тип приєднання Використовує коментар
ВНУТРІШНІЙ Внутрішнє об'єднання вибирає набір записів, які збігаються в обох таблицях. Ряди без партнера з будь-якого боку відкидаються.
ЗАЛИШИЛИ ЗОВНІШНЕ ПРИЄДНАННЯ Ліве зовнішнє об'єднання вибирає повний набір записів з першої таблиці, а відповідний запис — з другої таблиці, якщо такий доступний. Якщо у другій таблиці немає збігів, для її стовпців повертаються значення null.
ПРАВЕ ЗОВНІШНЄ З'ЄДНАННЯ Праве зовнішнє об'єднання вибирає повний набір записів з другої таблиці, а відповідний запис – з першої таблиці, якщо такий доступний. Якщо в першій таблиці немає збігів, для її стовпців повертаються значення null.
ПОВНЕ ПРИЄДНАННЯ Повне зовнішнє об'єднання вибирає всі записи з обох таблиць. Незбігні рядки з будь-якого боку доповнюються нульовими значеннями.
РЕФЕРЕНЦІЙНЕ ПРИЄДНАННЯ Поводиться як внутрішнє об'єднання, за припущення, що між двома таблицями зберігається посилальна цілісність. Доступно в атрибутивних поданнях, аналітичних поданнях та поданнях розрахунків для вузлів з'єднання.
ПРИЄДНАТИ ТЕКСТ Об'єднання тексту вибирає опис, специфічний для мови, який належить ключу, використовуючи стовпець мови текстової таблиці. Стовпець мови, зазвичай SPRAS, має бути позначений у властивостях об'єднання.

Посилальні та текстові з'єднання – це типи лише для моделювання. Вони існують у вузлі з'єднання інформаційного представлення та не мають еквівалентного ключового слова в SQL, тому вони відображаються в SAP Моделювання HANA інструменти, а не в операторі SELECT.

SAP Синтаксис HANA Join та приклади SQL

Внутрішні та зовнішні з'єднання записуються в SAP HANA SQL зі стандартним синтаксисом ANSI, тому запит, протестований на іншій реляційній базі даних, зазвичай виконується без змін. У наведеному нижче прикладі таблиця замовлень на продаж об'єднується з таблицею клієнтів, а потім з таблицею станів.

SELECT so.ORDER_ID, c.NAME, s.STATE_NAME, so.AMOUNT
FROM SALES_ORDER AS so
INNER JOIN CUSTOMER AS c
  ON so.CUSTOMER_ID = c.CUSTOMER_ID
LEFT OUTER JOIN STATE AS s
  ON c.STATE_CODE = s.STATE_CODE
WHERE so.AMOUNT > 1000
ORDER BY so.ORDER_ID;

Внутрішнє об'єднання видаляє кожне замовлення на продаж, у якому відсутній основний запис клієнта. Ліве зовнішнє об'єднання зберігає всі замовлення, що залишилися, навіть якщо код штату не має опису, і повертає нульову назву штату для цих рядків. Поміняти місцямиping Таким чином, два типи об'єднання змінюють кількість рядків, а не лише кількість відображених стовпців.

Графічні моделі досягають того самого результату без SQL. Вузол об'єднання розміщується між двома джерелами даних у редакторі представлень, стовпці, що формують умову об'єднання, зіставляються, а тип об'єднання та потужність встановлюються у властивостях вузла. SAP Студія HANA Редактор і браузерний моделювальник генерують SQL-запит середовища виконання з цих налаштувань.

Розширені типи об'єднань у SAP Представлення обчислень HANA

Представлення обчислень додають поведінку об'єднання, яку звичайний SQL не виражає одним ключовим словом. Ці параметри налаштовуються на вузлі об'єднання або через спеціальний тип вузла.

Тип приєднання Що вона робить Типове використання
Тимчасове об'єднання Зіставляє записи транзакцій з версією основних даних, яка була дійсною на задану дату, використовуючи поля «від» та «до» джерела основних даних. Залежні від часу основні дані, такі як центр витрат, власника якого змінив. Тип об'єднання має бути посилальних, а ключ має бути датою, міткою часу або цілим числом.
Просторове з'єднання Об'єднує два джерела у стовпці геометрії за допомогою просторового предиката, такого як intersects або within, замість умови рівності. Географічний аналіз, наприклад, зіставлення місцезнаходження клієнтів із територіями збуту.
Динамічне приєднання Створює умову об'єднання під час виконання з фактично запитуваних стовпців об'єднання, агрегуючи решту стовпців перед виконанням об'єднання. Багатостовпцеві об'єднання, де ступінь деталізації запиту змінюється. Повинен бути запит принаймні на один стовпець об'єднання, інакше запит не вдасться виконати.
Приєднатися зірочкою Об'єднує одне джерело фактів з кількома переглядами обчислення вимірів в одному вузлі. Моделі схеми «зірка», що замінюють старіший аналітичний вигляд.

Динамічне об'єднання змінює послідовність операцій, а не правило зіставлення. У статичному об'єднанні кожен визначений стовпець бере участь в умові, а агрегація відбувається пізніше; у динамічному об'єднанні спочатку агрегуються незапитані стовпці, що зазвичай повертає менше рядків та інший підсумок. Таким чином, ці два стовпці відповідають на різні бізнес-питання, тому прапорець встановлено навмисно, а не як загальну оптимізацію.

Як вибрати правильний тип з'єднання SAP Моделювання HANA

Вибір об'єднання впливає як на правильність, так і на час виконання, а найшвидшим об'єднанням є те, що SAP HANA ніколи не має виконуватися. Наведені нижче правила охоплюють більшість рішень моделювання.

  • Посилальне з'єднання — використовуйте його лише тоді, коли кожен рядок з одного боку гарантовано має партнера, оскільки механізм може повністю пропустити об'єднання, якщо не запитується жодного стовпця з об'єднаної таблиці.
  • Внутрішнє з'єднання — використовуйте його, коли цілісність посилань не гарантована, і незбігаючі рядки необхідно виключити.
  • Ліве зовнішнє з'єднання — використовуйте його, коли перша таблиця визначає результат, а відсутні основні дані все одно мають відображатися.
  • Повне зовнішнє з'єднання — використовуйте його економно, оскільки це найдорожчий варіант і рідко потрібен у моделях звітності.
  • Об'єднання тексту — використовуйте його щоразу, коли стовпець опису залежить від мови входу до системи.

Дві властивості вузла мають таке ж значення, як і сам тип об'єднання. Кардинальність (1:1, 1:n, n:1 або n:m) вказує механізму, скільки рядків очікувати з кожного боку, а функція Propose Cardinality отримує її з даних. Прапорець Optimize Join Columns потім дозволяє SAP HANA для видалення стовпця об'єднання з плану виконання, коли запит його не запитує. Неправильна потужність елементів може непомітно помножити міри, тому вона перевіряється на основі даних, а не передбачається.

Ще одне обмеження формує нові розробки. Атрибутні представлення та аналітичні представлення застаріли, і SAP рекомендує конвертувати їх у графічні подання розрахунків, тому з'єднання, розроблене сьогодні, зазвичай будується у вузлі з'єднання подання розрахунків або зіркоподібного з'єднання. Інформація про старіші об'єкти все ще корисна, коли підтримується існуюча модель, а перегляд атрибутів та аналітичний погляд сторінки описують, як ці об'єднання були налаштовані. SAP Навчальний матеріал з об'єднати вузли охоплює ту саму поведінку в SAP HANA Cloud та ширше SAP Підручник з HANA Серія пояснює, де на платформі розміщуються інформаційні представлення.

Поширені запитання

Кардинальність (1:1, 1:n, n:1, n:m) вказує механізму, скільки збігів рядків очікувати з кожного боку. Це дозволяє скорочення об'єднань та захищає агрегати. Запропонована кардинальність визначає налаштування з даних, що безпечніше, ніж здогадки.

Це дозволяє SAP HANA видаляє стовпець об'єднання з плану виконання, коли клієнтський запит ніколи його не запитує. Менше стовпців означає менше груп.pingта швидші середовища виконання, але результати можуть змінитися, якщо видалений стовпець вплинув на рівень агрегації.

Існуючі об'єкти все ще працюють, але обидва типи представлень застаріли та не можуть бути додані до нових представлень обчислень. SAP рекомендує конвертувати їх у графічні режими розрахунку, де доступні ті самі типи з'єднань, а також зіркоподібне та просторове з'єднання.

Він повинен зберігати незбігаючі рядки з обох сторін, щоб жодну таблицю не можна було скоротити, і кожен рядок матеріалізувався. Посилальне об'єднання, навпаки, може бути повністю пропущено, коли запит не запитує жодного стовпця з об'єднаної таблиці.

Мовний стовпець текстової таблиці, зазвичай SPRAS у SAP таблиці, позначено у властивостях об'єднання. SAP Потім HANA фільтрує описи за мовою сеансу, тому одна модель обслуговує кожну мову входу без окремого представлення.

Так. Вузол об'єднання приймає таблиці, табличні функції та інші подання обчислень як джерела даних, саме так подання вимірів приєднуються до таблиці фактів. Назви стовпців можуть відрізнятися, оскільки умова об'єднання явно відображає стовпці.

Машинне навчання профілює значення стовпців, щоб пропонувати ключі об'єднання та потужність, позначає моделі, показники яких збільшуються після об'єднання, та кластеризує майже дублікати представлень. SAP також вбудовує в платформу прогностичні та генеративні сервіси, тому оцінювання відбувається поряд із змодельованими даними.

Copilot компетентно створює стандартні SQL-з'єднання та пришвидшує повторювані оператори SELECT. Він не знає посилальної цілісності схеми, тому тип з'єднання, кардинальність елементів та параметри лише моделювання, такі як текстове з'єднання, все ще потребують перевірки на відповідність фактичним даним.

Підсумуйте цей пост за допомогою: