Присъединява се SAP HANA: Видове, синтаксис и примери

⚡ Умно обобщение

SAP HANA joins свързва таблици и информационни изгледи, така че моделът да връща точно редовете, от които се нуждае отчетът. Вътрешните, външните, референтните, текстовите, темпоралните и пространствените типове променят производителността, обработката на кардиналността и размера на резултата.

  • 🔗 Обхват: Свързва таблици с данни и информационни изгледи в графични модели и в обикновени SQL изрази в базата данни.
  • ☑️ Стандартни видове: Вътрешните, лявите външни, десните външни и пълните външни съединения се държат точно както в ANSI SQL.
  • ✅ Типове само за моделиране: Референтните и текстовите съединения съществуват само в информационни изгледи и нямат еквивалент на ключови думи в SQL.
  • 🧪 Разширени възли: Временните, пространствените, динамичните и звездните съединения разширяват изгледите за изчисление отвъд простото съпоставяне на колони.
  • 🛠️ Лостове за ефективност: Кардиналността и флагът „Оптимизирай съединението на колони“ определят дали SAP HANA може да подрязва таблица по време на изпълнение.
  • 📈 Модернизация: Атрибутните и аналитичните изгледи са остарели, така че новите съединения принадлежат към графичните изгледи за изчисление.

Типове съединения, използвани за комбиниране на таблици и информационни изгледи в SAP ХАНА

Какво е 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 Серията обяснява къде се вписват информационните изгледи в платформата.

Въпроси и Отговори

Кардиналността (1:1, 1:n, n:1, n:m) указва на енджина колко съвпадащи реда да очаква от всяка страна. Тя позволява подрязване на съединенията и защитава агрегатите. Предложената кардиналност извлича настройката от данните, което е по-безопасно от гадаене.

Това позволява SAP HANA премахва колона за свързване от плана за изпълнение, когато клиентската заявка никога не я изисква. По-малко колони означава по-малко групи.pingи по-бързи времена на изпълнение, но резултатите могат да се променят, ако премахнатата колона е повлияла на нивото на агрегиране.

Съществуващите обекти все още се изпълняват, но и двата типа изгледи са остарели и не могат да бъдат добавяни към нови изгледи за изчисление. SAP препоръчва конвертирането им в графични изгледи за изчисление, където са налични същите типове съединения, плюс звездообразно съединение и пространствено съединение.

Трябва да се запазят несъответстващите редове от двете страни, така че никоя таблица да не може да бъде премахната и всеки ред да бъде материализиран. Референтното съединение, за разлика от това, може да бъде пропуснато изцяло, когато заявката не изисква колона от свързаната таблица.

Колоната за език на текстовата таблица, обикновено SPRAS в SAP таблици, е маркирано в свойствата на съединението. SAP След това HANA филтрира описанията по езика на сесията, така че един модел обслужва всеки език за влизане без отделен изглед.

Да. Възелът за свързване приема таблици, таблични функции и други изгледи за изчисление като източници на данни, което е начинът, по който изгледите на измерения се прикрепят към таблица с факти. Имената на колоните може да се различават, тъй като условието за свързване съпоставя колоните изрично.

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

Copilot компетентно изготвя стандартни SQL съединения и ускорява повтарящите се SELECT изрази. Той не знае референтната цялост на схемата, така че типът съединение, кардиналността и опциите само за моделиране, като например текстово съединение, все още се нуждаят от проверка спрямо действителните данни.

Обобщете тази публикация с: