Приєднується SAP HANA: Типи, синтаксис та приклади
⚡ Розумний підсумок
SAP HANA joins з'єднує таблиці та інформаційні представлення, тому модель повертає саме ті рядки, які потрібні звіту. Внутрішній, зовнішній, посилальний, текстовий, часовий та просторовий типи змінюють продуктивність, обробку потужності та розмір результату.
Що таке 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 Серія пояснює, де на платформі розміщуються інформаційні представлення.
