Поделиться через


База данных SAP HANA

Итоги

Позиция Description
Состояние выпуска Общая доступность
Продукты Excel
Power BI (семантические модели)
Power BI (потоки данных)
Fabric (Dataflow 2-го поколения)
Power Apps (потоки данных)
Службы Analysis Services
Поддерживаемые типы проверки подлинности Базовая
База данных
Windows
Справочная документация по функциям SapHana.Database

Примечание.

Некоторые возможности могут присутствовать в одном продукте, но не другие из-за расписаний развертывания и возможностей для конкретного узла.

Необходимые компоненты

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

Чтобы использовать SAP HANA в Power BI Desktop или Excel, необходимо установить драйвер ODBC SAP HANA на локальном клиентском компьютере для правильной работы подключения к данным SAP HANA. Вы можете скачать клиентские средства SAP HANA из средств разработки SAP, который содержит необходимый драйвер ODBC. Вы также можете получить его из Центра загрузки программного обеспечения SAP. На портале программного обеспечения найдите КЛИЕНТ SAP HANA для компьютеров Windows. Так как центр загрузки программного обеспечения SAP часто изменяет структуру, более конкретные рекомендации по переходу на этот сайт недоступны. Инструкции по установке драйвера ODBC SAP HANA см. в статье об установке драйвера ODBC SAP HANA в Windows 64 Bits.

Чтобы использовать SAP HANA в Excel, необходимо установить на локальном клиентском компьютере 32-разрядную или 64-разрядную версию SAP HANA ODBC (в зависимости от того, используется ли 32-разрядная или 64-разрядная версия Excel).

Эта функция доступна только в Excel для Windows, если у вас есть подписка На Office 2019 или Microsoft 365. Если вы являетесь подписчиком Microsoft 365, убедитесь, что у вас установлена последняя версия Office.

Поддерживается HANA 1.0 SPS 12rev12.09, 2.0 SPS 3rev30 и BW/4HANA 2.0.

Поддерживаемые возможности

  • Import
  • Direct Query (семантические модели Power BI)
  • Дополнительные
    • Инструкция SQL

Подключение в базу данных SAP HANA из Power Query Desktop

Чтобы подключиться к базе данных SAP HANA из Power Query Desktop, выполните приведенные ниже действия.

  1. Выберите "Получить базу данных > SAP HANA" в Power BI Desktop или из базы данных ИЗ базы данных> SAP HANA на ленте данных в Excel.

  2. Введите имя и порт сервера SAP HANA, к которому вы хотите подключиться. Пример на следующем рисунке используется SAPHANATestServer на порту 30015.

    Введите сведения о сервере SAP HANA.

    По умолчанию номер порта устанавливается для поддержки одной базы данных контейнера. Если база данных SAP HANA может содержать несколько контейнеров мультитенантной базы данных, выберите базу данных системы с несколькими контейнерами (30013). Если вы хотите подключиться к базе данных клиента или базе данных с номером экземпляра, отличного от по умолчанию, выберите "Пользовательский " в раскрывающемся меню "Порт ".

    Если вы подключаетесь к базе данных SAP HANA из Power BI Desktop, вы также можете выбрать вариант импорта или DirectQuery. В примере в этой статье используется импорт, который является значением по умолчанию (и единственным режимом для Excel). Дополнительные сведения о подключении к базе данных с помощью DirectQuery в Power BI Desktop см. в Подключение источниках данных SAP HANA с помощью DirectQuery в Power BI.

    Вы также можете ввести инструкцию SQL или включить привязку столбцов из дополнительных параметров. Дополнительные сведения Подключение с помощью дополнительных параметров

    После ввода всех параметров нажмите кнопку "ОК".

  3. Если вы впервые обращаетесь к базе данных, вам будет предложено ввести учетные данные для проверки подлинности. В этом примере серверу SAP HANA требуются учетные данные пользователя базы данных, поэтому выберите "База данных " и введите имя пользователя и пароль. При необходимости введите сведения о сертификате сервера.

    Введите учетные данные сервера.

    Кроме того, может потребоваться проверить сертификат сервера. Дополнительные сведения об использовании выбора сертификатов сервера см. в разделе "Использование шифрования SAP HANA". В Power BI Desktop и Excel выбор сертификата сервера проверки включен по умолчанию. Если вы уже настроили эти выборы в источнике данных ODBC Администратор istrator, снимите флажок "Проверить сертификат сервера" проверка. Чтобы узнать больше об использовании источника данных ODBC Администратор istrator для настройки этих выборов, перейдите к разделу "Настройка SSL для клиентского доступа ODBC к SAP HANA".

    Дополнительные сведения о проверке подлинности см. в описании проверки подлинности с помощью источника данных.

    После заполнения всех необходимых сведений выберите Подключение.

  4. В диалоговом окне "Навигатор" можно преобразовать данные в редакторе Power Query, выбрав преобразование данных или загрузив данные, выбрав "Загрузка".

Подключение в базу данных SAP HANA из Power Query Online

Чтобы подключиться к данным SAP HANA из Power Query Online, выполните приведенные ниже действия.

  1. На странице источников данных выберите базу данных SAP HANA.

  2. Введите имя и порт сервера SAP HANA, к которому вы хотите подключиться. Пример на следующем рисунке используется SAPHANATestServer на порту 30015.

  3. При необходимости введите инструкцию SQL из дополнительных параметров. Дополнительные сведения Подключение с помощью дополнительных параметров

  4. Выберите имя локального шлюза данных, который будет использоваться для доступа к базе данных.

    Примечание.

    Для этого соединителя необходимо использовать локальный шлюз данных, независимо от того, являются ли данные локальными или сетевыми.

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

    Примечание.

    В настоящее время Power Query Online поддерживает только обычную проверку подлинности.

  6. Выберите "Использовать зашифрованные Подключение ion", если вы используете любое зашифрованное подключение, а затем выберите поставщика шифрования SSL. Если вы не используете зашифрованное подключение, снимите флажок Use Encrypted Подключение ion. Дополнительные сведения. Включение шифрования для SAP HANA

    Вход в базу данных SAP HANA в сети.

  7. Выберите Далее для продолжения.

  8. В диалоговом окне "Навигатор" можно преобразовать данные в редакторе Power Query, выбрав преобразование данных или загрузив данные, выбрав "Загрузка".

Подключением с использованием дополнительных параметров

Power Query предоставляет набор дополнительных параметров, которые можно добавить в запрос при необходимости.

В следующей таблице описаны все дополнительные параметры, которые можно задать в Power Query.

Дополнительный параметр Description
Инструкция SQL Дополнительные сведения: импорт данных из базы данных с помощью собственного запроса базы данных
Включение привязки столбцов При получении данных привязывает переменные к столбцам результирующего набора SAP HANA. Может повысить производительность за счет немного более высокой загрузки памяти. Этот параметр доступен только в Power Query Desktop. Дополнительные сведения: включение привязки столбцов
ConnectionTimeout Длительность, которая определяет, как долго ждать, прежде чем отказаться от попытки подключения к серверу. Значение по умолчанию — 15 секунд.
CommandTimeout Длительность, которая определяет время выполнения запроса на стороне сервера перед отменой. Значение по умолчанию — десять минут.

Поддерживаемые функции для SAP HANA

В следующем списке показаны поддерживаемые функции SAP HANA. Не все функции, перечисленные здесь, поддерживаются во всех реализациях соединителя базы данных SAP HANA.

  • Соединитель Power BI Desktop и Excel для базы данных SAP HANA используют драйвер SAP ODBC для обеспечения оптимального взаимодействия с пользователем.

  • В Power BI Desktop SAP HANA поддерживает параметры DirectQuery и импорта.

  • Power BI Desktop поддерживает информационные модели HANA, такие как аналитические и вычисляемые представления, и оптимизированную навигацию.

  • С помощью SAP HANA можно также использовать команды SQL в инструкции SQL-запроса собственной базы данных для подключения к таблицам строк и столбцов в таблицах каталога HANA, которые не включены в представления аналитики и вычисления, предоставляемые интерфейсом навигатора. Соединитель ODBC можно также использовать для запроса этих таблиц.

  • Power BI Desktop включает оптимизированную навигацию для моделей HANA.

  • Power BI Desktop поддерживает переменные SAP HANA и входные параметры.

  • Power BI Desktop поддерживает представления вычислений на основе HDI.

  • Функция SapHana.Database теперь поддерживает время ожидания подключений и команд. Дополнительные сведения: Подключение с помощью дополнительных параметров

    • Чтобы получить доступ к представлениям вычислений на основе контейнеров HDI в Power BI, убедитесь, что пользователи базы данных HANA, используемые с Power BI, имеют разрешение на доступ к контейнеру среды выполнения HDI, в которой хранятся представления, к которым вы хотите получить доступ. Чтобы предоставить этому доступу, создайте роль, которая позволяет получить доступ к контейнеру HDI. Затем назначьте роль пользователю базы данных HANA, который будет использоваться с Power BI. (Этот пользователь также должен иметь разрешение на чтение из системных таблиц в схеме _SYS_BI, как обычно.) Ознакомьтесь с официальной документацией ПО SAP, чтобы получить подробные инструкции по созданию и назначению ролей базы данных. Эта запись блога SAP может быть хорошим местом для начала.

    • В настоящее время существуют некоторые ограничения для переменных HANA, подключенных к представлениям вычислений на основе HDI. Эти ограничения возникают из-за ошибок на стороне HANA. Во-первых, невозможно применить переменную HANA к общему столбцу представления вычислений на основе контейнера HDI. Чтобы устранить это ограничение, обновите до HANA 2 версии 37.02 и до HANA 2 версии 42 и далее. Во-вторых, значения по умолчанию для переменных и параметров по умолчанию не отображаются в пользовательском интерфейсе Power BI. Ошибка в SAP HANA приводит к этому ограничению, но SAP еще не объявила об исправлении.

Включение привязки столбцов

Данные, полученные из источника данных, возвращаются приложению в переменных, выделенных приложением для этой цели. Прежде чем это можно сделать, приложение должно связать или привязать эти переменные к столбцам результирующего набора. Концептуально это процесс совпадает с привязкой переменных приложения к параметрам инструкции. Когда приложение привязывает переменную к столбцу результирующих наборов, она описывает переменную — адрес, тип данных и т. д. — драйверу. Драйвер хранит эти сведения в структуре, которую он поддерживает для этой инструкции, и использует сведения для возврата значения из столбца при получении строки.

В настоящее время при использовании Power Query Desktop для подключения к базе данных SAP HANA можно выбрать расширенный параметр "Включить привязку столбцов", чтобы включить привязку столбцов.

Вы также можете включить привязку столбцов в существующих запросах или запросах, используемых в Power Query Online, вручную добавив EnableColumnBinding параметр к подключению в строке формул Power Query или расширенном редакторе. Например:

SapHana.Database("myserver:30015", [Implementation = "2.0", EnableColumnBinding = true]),

Существуют ограничения, связанные с добавлением EnableColumnBinding параметра вручную:

  • Включение привязки столбцов работает как в режиме импорта, так и в режиме DirectQuery. Однако модернизация существующего запроса DirectQuery для использования этого расширенного параметра невозможна. Вместо этого для правильной работы этой функции необходимо создать новый запрос.
  • В SAP HANA Server версии 2.0 или более поздней привязка столбцов является все или ничего. Если некоторые столбцы не могут быть привязаны, ни одна из них не будет привязана, и пользователь получит исключение, например DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384).
  • Серверы SAP HANA версии 1.0 не всегда сообщают о правильной длине столбцов. В этом контексте EnableColumnBinding допускается частичная привязка столбцов. Для некоторых запросов это может означать, что столбцы не привязаны. Если столбцы не привязаны, преимущества производительности не получаются.

Поддержка собственных запросов в соединителе базы данных SAP HANA

Соединитель базы данных SAP HANA Power Query поддерживает собственные запросы. Сведения об использовании собственных запросов в Power Query см. в разделе "Импорт данных из базы данных" с помощью собственного запроса базы данных.

Свертывание запросов на собственные запросы

Соединитель базы данных SAP HANA Для Power Query теперь поддерживает свертывание запросов в собственных запросах. Дополнительные сведения: свертывание запросов на собственные запросы

Примечание.

В соединителе базы данных SAP HANA Power Query собственные запросы не поддерживают повторяющиеся имена столбцов, если EnableFolding задано значение true.

Параметры в собственных запросах

Соединитель базы данных SAP HANA Для Power Query теперь поддерживает параметры в собственных запросах. Параметры в собственных запросах можно указать с помощью синтаксиса Value.NativeQuery .

В отличие от других соединителей, соединитель базы данных SAP HANA поддерживает EnableFolding = True и задает параметры одновременно.

Чтобы использовать параметры в запросе, в качестве заполнителей помещайте в код вопросительные знаки (?). Чтобы указать параметр, используйте SqlType текстовое значение и значение для этого SqlType в Value. Value может быть любым значением M, но должно быть назначено указанному SqlTypeзначению.

Существует несколько способов указания параметров:

  • Предоставление только значений в виде списка:

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Предоставление значений и типов в виде списка:

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Смешивайте и сопоставляйте два:

    { “Seattle”, 1, [ SqlType = "SECONDDATE", Value = #datetime(2022, 5, 27, 17, 43, 7) ] }
    

SqlType следует стандартным именам типов, определенным SAP HANA. Например, следующий список содержит наиболее распространенные типы, используемые:

  • BIGINT
  • BINARY
  • BOOLEAN
  • CHAR
  • DATE
  • DECIMAL
  • DOUBLE
  • INTEGER
  • NVARCHAR
  • SECONDDATE
  • SHORTTEXT
  • SMALLDECIMAL
  • SMALLINT
  • TIME
  • TIMESTAMP
  • VARBINARY
  • VARCHAR

В следующем примере показано, как указать список значений параметров.

let
    Source = Value.NativeQuery(
        SapHana.Database(
            "myhanaserver:30015", 
            [Implementation = "2.0"]
        ), 
        "select ""VARCHAR_VAL"" as ""VARCHAR_VAL""
    from ""_SYS_BIC"".""DEMO/CV_ALL_TYPES""
    where ""VARCHAR_VAL"" = ? and ""DATE_VAL"" = ?
    group by ""VARCHAR_VAL""
    ", 
        {"Seattle", #date(1957, 6, 13)}, 
        [EnableFolding = true]
    )
in
    Source

В следующем примере показано, как предоставить список записей (или смешивать значения и записи):

let
    Source = Value.NativeQuery(
        SapHana.Database(Server, [Implementation="2.0"]), 
    "select
        ""COL_VARCHAR"" as ""COL_VARCHAR"",
        ""ID"" as ""ID"",
        sum(""DECIMAL_MEASURE"") as ""DECIMAL_MEASURE""
    from ""_SYS_BIC"".""DEMO/CV_ALLTYPES""
    where
        ""COL_ALPHANUM"" = ? or
        ""COL_BIGINT"" = ? or
        ""COL_BINARY"" = ? or
        ""COL_BOOLEAN"" = ? or
        ""COL_DATE"" = ?
    group by 
        ""COL_ALPHANUM"",
        ""COL_BIGINT"",
        ""COL_BINARY"",
        ""COL_BOOLEAN"",
        ""COL_DATE"",
       {
            [ SqlType = "CHAR", Value = "M" ],                                                // COL_ALPHANUM - CHAR
            [ SqlType = "BIGINT", Value = 4 ],                                                // COL_BIGINT - BIGINT
            [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ],   // COL_BINARY - BINARY
            [ SqlType = "BOOLEAN", Value = true ],                                            // COL_BOOLEAN - BOOLEAN
            [ SqlType = "DATE", Value = #date(2022, 5, 27) ],                                 // COL_DATE - TYPE_DATE
        } ,
        [EnableFolding=false]
    )
in
    Source

Поддержка динамических атрибутов

Улучшен способ, в котором соединитель базы данных SAP HANA обрабатывает вычисляемые столбцы. Соединитель базы данных SAP HANA — это соединитель куба, и есть некоторые наборы операций (добавление элементов, свертывание столбцов и т. д.), которые происходят в пространстве куба. Это пространство куба представлено в пользовательском интерфейсе Power Query Desktop и Power Query Online значком куба, который заменяет более распространенный значок таблицы.

Снимок экрана: левая часть текущего представления в Power Query, подчеркивающая значок куба в верхней части столбца номера строки.

Перед добавлением столбца таблицы (или другого преобразования, которое внутренне добавляет столбец), запрос будет "выпадать из пространства куба", и все операции будут выполняться на уровне таблицы. В какой-то момент это удаление может привести к остановке свертывания запроса. Выполнение операций куба после добавления столбца больше не возможно.

При этом изменении добавленные столбцы обрабатываются как динамические атрибуты в кубе. Если запрос остается в пространстве куба для этой операции, вы можете продолжать использовать операции куба даже после добавления столбцов.

Примечание.

Эта новая функция доступна только при подключении к представлениям вычислений в SAP HANA Server версии 2.0 или более поздней.

Следующий пример запроса использует эту новую возможность. В прошлом при применении Cube.CollapseAndRemoveColumns вы получите исключение "значение не является кубом".

let
    Source = SapHana.Database(“someserver:someport”, [Implementation="2.0"]),
    Contents = Source{[Name="Contents"]}[Data],
    SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models = Contents{[Name="SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models"]}[Data],
    PURCHASE_ORDERS1 = SHINE_CORE_SCHEMA.sap.hana.democontent.epm.models{[Name="PURCHASE_ORDERS"]}[Data],
    #"Added Items" = Cube.Transform(PURCHASE_ORDERS1,
        {
            {Cube.AddAndExpandDimensionColumn, "[PURCHASE_ORDERS]", {"[HISTORY_CREATEDAT].[HISTORY_CREATEDAT].Attribute", "[Product_TypeCode].[Product_TypeCode].Attribute", "[Supplier_Country].[Supplier_Country].Attribute"}, {"HISTORY_CREATEDAT", "Product_TypeCode", "Supplier_Country"}},
            {Cube.AddMeasureColumn, "Product_Price", "[Measures].[Product_Price]"}
        }),
    #"Inserted Year" = Table.AddColumn(#"Added Items", "Year", each Date.Year([HISTORY_CREATEDAT]), Int64.Type),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Year", each ([Product_TypeCode] = "PR")),
    #"Added Conditional Column" = Table.AddColumn(#"Filtered Rows", "Region", each if [Supplier_Country] = "US" then "North America" else if [Supplier_Country] = "CA" then "North America" else if [Supplier_Country] = "MX" then "North America" else "Rest of world"),
    #"Filtered Rows1" = Table.SelectRows(#"Added Conditional Column", each ([Region] = "North America")),
    #"Collapsed and Removed Columns" = Cube.CollapseAndRemoveColumns(#"Filtered Rows1", {"HISTORY_CREATEDAT", "Product_TypeCode"})
in
    #"Collapsed and Removed Columns"

Следующие шаги

В следующих статьях содержатся дополнительные сведения, которые могут оказаться полезными при подключении к дебазе SAP HANA.