Как правильно выполнять запрос в SAP HANA? - PullRequest
0 голосов
/ 10 марта 2019

У меня есть несколько таблиц, которые загружены из Oracle в HANA.

Среди этих таблиц одна таблица фактов, а другие таблицы измерений.

Я пишу sql, который выполняет двевещи:

  1. Соединение таблицы фактов и таблиц измерений

  2. Вычисление мер (таких как min, sum, count) по таблице фактов путем группировки по двумразмеры,

Я бы спросил, как правильно это сделать,

  1. Напишите SQL и запустите sql напрямую без моделирования

  2. Создание представления атрибутов и аналитического представления с помощью таблицы фактов и таблиц измерений, а затем выполнение запроса к аналитическому представлению.

Я новичок в HANA, и я не уверен, какой из них предпочтительнее и почему, кто-то может помочь?

1 Ответ

1 голос
/ 13 марта 2019

Ваш вопрос предполагает, что написание SQL-запросов не моделирование данных. Это не правильно. В то время как базовые структуры баз данных SQL (например, таблицы и представления) предопределены, и то, что вы создаете из этих структур, полностью соответствует вашей структуре запросов.

Это одна из сильных сторон (если хотите) SQL: она позволяет вам менять свою точку зрения на данные и задавать разные вопросы. Но вопросы, которые вы задаете, являются образцами вашего запроса и вашего мышления.

Вкратце: написание SQL - это моделирование ..

Во всяком случае, я понял, что вы имели в виду под вашим вопросом в смысле "modelling" == "using the HANA graphical modeller". Ответ на ваш вопрос, конечно, " это зависит ".

Графическое моделирование является простым (для простых моделей), требует меньшего количества операций ввода, и эти модели можно легко представить инструментам отчетности и / или службам OData.

SQL, с другой стороны, является очень универсальным инструментом для многих задач обработки данных и может быстро привести к результатам даже в очень сложных сценариях.

Лично я обычно вначале играю в SQL и использую графические модели только в том случае, если хочу использовать в них определенные функции (например, функции анонимизации в HANA 2 недоступны в SQL).

Возвращаясь к вашему примеру: если вы хотите повторно использовать таблицы измерений (особенно когда это на самом деле не простые таблицы, а завершенные конструкции соединения самостоятельно), я бы, вероятно, сначала воспользовался подходом графического моделирования, чтобы установить «куб» -структуре. Запросы к этой структуре куба будут записываться как SQL.

Наконец, производительность выполнения должна быть очень аналогичной в большинстве случаев. Я бы использовал любой инструмент, который, по моему мнению, лучше всего подходит для конкретной задачи моделирования, прежде чем выбрать его из-за «лучшей производительности». Причина этого заключается в том, что полное понимание вашей модели данных (как схемы, так и вашего запроса) является наилучшим вариантом для повышения производительности после того, как вы установили, что результаты верны.

...