Присъединява се SAP HANA: Видове, синтаксис и примери
⚡ Умно обобщение
SAP HANA joins свързва таблици и информационни изгледи, така че моделът да връща точно редовете, от които се нуждае отчетът. Вътрешните, външните, референтните, текстовите, темпоралните и пространствените типове променят производителността, обработката на кардиналността и размера на резултата.
Какво е SAP HANA Присъединяване?
Присъединяване SAP HANA комбинира редове от две или повече таблици или от таблица и информационен изглед и връща стойностите, изисквани от заявката. Съединенията се дефинират графично във възела за съединение на информационен изглед и се записват директно в SQL изрази, които се изпълняват в базата данни.
Двете форми не са идентични. Съединение вътре в изглед на изчислението се изпълнява от SAP HANA изчислителен енджин, който може да пропусне таблица, когато от нея не идва заявена колона, докато съединение, написано на SAP HANA SQL винаги се изпълнява точно както е кодирано.
Следните типове съединения са налични, когато SAP HANA таблиците и информационните изгледи са комбинирани.
| Тип присъединяване | Можете да използвате | коментар |
|---|---|---|
| INNER | Вътрешното съединение избира набора от записи, които съвпадат и в двете таблици. | Редове без партньор от двете страни се изхвърлят. |
| ЛЯВО ВЪНШНО СЪЕДИНЕНИЕ | Лявото външно съединение избира пълния набор от записи от първата таблица със съответстващия запис от втората таблица, където има такъв. | Ако няма съвпадение във втората таблица, за нейните колони се връщат нулеви стойности. |
| ДЯСНО ВЪНШНО СЪЕДИНЕНИЕ | Дясното външно съединение избира пълния набор от записи от втората таблица, като съответстващият запис е от първата таблица, където има такъв. | Ако в първата таблица не съществува съвпадение, за нейните колони се връщат нулеви стойности. |
| ПЪЛНО ВЪНШНО СЪЕДИНЕНИЕ | Пълното външно съединение избира всички записи от двете таблици. | Несъответстващите редове от двете страни се допълват с нулеви стойности. |
| РЕФЕРЕНТНО ПРИСЪЕДИНЯВАНЕ | Държи се като вътрешно съединение, при условие че се поддържа референтната цялост между двете таблици. | Достъпно в атрибутни изгледи, аналитични изгледи и изгледи за свързване на възли. |
| ПРИСЪЕДИНЯВАНЕ НА ТЕКСТ | Текстовото съединение избира специфичното за езика описание, което принадлежи на ключ, използвайки колоната за език на текстовата таблица. | Колоната за език, обикновено 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 Студио ХАНА Редакторът и базираният на браузъра моделатор генерират SQL код по време на изпълнение от тези настройки.
Разширени типове присъединявания в SAP Изгледи за изчисление на HANA
Изгледите за изчисление добавят поведение на съединение, което обикновеният SQL не изразява с една единствена ключова дума. Тези опции се конфигурират на възела за съединение или чрез специален тип възел.
| Тип присъединяване | Какво го прави | Типична употреба |
|---|---|---|
| Временно съединение | Съпоставя записите на транзакциите с версията на основните данни, която е била валидна на дадена дата, използвайки полетата „от“ и „до“ на източника на основни данни. | Зависими от времето основни данни, като например разходен център, който е сменил собственика. Типът на съединението трябва да е референтен, а ключът трябва да е дата, времеви печат или цяло число. |
| Пространствено съединение | Свързва два източника върху геометрична колона с пространствен предикат, като например „пресича“ или „в рамките“, вместо върху условие за равенство. | Географски анализ, например съпоставяне на местоположенията на клиентите с териториите на продажби. |
| Динамично присъединяване | Изгражда условието за съединение по време на изпълнение от колоните за съединение, които заявката действително изисква, като агрегира останалите колони, преди съединението да се изпълни. | Многоколонни съединения, при които гранулираността на заявката варира. Трябва да бъде заявена поне една колона за съединение, в противен случай заявката е неуспешна. |
| Звездно присъединяване | Свързва един източник на факти с няколко изгледа за изчисление на измерения в един възел. | Модели на звездна схема, които заместват по-стария аналитичен изглед. |
Динамичното съединение променя последователността на операциите, а не правилото за съвпадение. При статичното съединение всяка дефинирана колона участва в условието, а агрегирането се извършва след това; при динамичното съединение първо се агрегират непоисканите колони, което обикновено връща по-малко редове и различен общ резултат. Следователно двете отговарят на различни бизнес въпроси, така че флагът е зададен умишлено, а не като обща оптимизация.
Как да изберете правилния тип присъединяване 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 Серията обяснява къде се вписват информационните изгледи в платформата.
