Base de données SAP HANA

Résumé

Élément Description
État de publication Disponibilité générale
PRODUITS Excel
Power BI (Modèles sémantiques)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Power Apps (Dataflows)
Analysis Services
Types d'authentification pris en charge De base
Base de données
Windows
Documentation de référence sur les fonctions SapHana.Database

Remarque

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas dans d'autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l'hôte.

Prérequis

Vous aurez besoin d’un compte SAP pour vous connecter au site Web et télécharger les pilotes. Si vous avez des hésitations, contactez l’administrateur SAP au sein votre organisation.

Pour utiliser SAP HANA dans Power BI Desktop ou Excel, le pilote ODBC SAP HANA doit être installé sur l’ordinateur client local pour que la connexion de données SAP HANA fonctionne correctement. Vous pouvez télécharger les outils clients SAP HANA depuis Outils de développement SAP, qui contient le pilote ODBC nécessaire. Vous pouvez aussi l’obtenir auprès du Centre de téléchargement de logiciels SAP. Dans le portail des logiciels, recherchez SAP HANA CLIENT pour les ordinateurs Windows. Étant donné que le Centre de téléchargement de logiciels SAP modifie sa structure fréquemment, des informations plus spécifiques sur la navigation dans ce site ne sont pas disponibles. Pour obtenir des instructions sur l’installation du pilote ODBC SAP HANA, consultez Installation du pilote ODBC SAP HANA sur Windows 64 bits.

Pour utiliser SAP HANA dans Excel, le pilote ODBC SAP HANA 32 bits ou 64 bits (selon que vous utilisez la version 32 bits ou 64 bits d’Excel) doit être installé sur l’ordinateur client local.

Cette fonctionnalité est disponible uniquement dans Excel pour Windows si vous disposez d’Office 2019 ou d’un abonnement Microsoft 365. Si vous êtes abonné à Microsoft 365, vérifiez que vous disposez de la dernière version d’Office.

HANA 1.0 SPS 12rev122.09, 2.0 SPS 3rev30 et BW/4HANA 2.0 est pris en charge.

Fonctionnalités prises en charge

  • Importer
  • Requête directe (Modèles sémantiques Power BI)
  • Avancé
    • Instruction SQL

Se connecter à une base de données SAP HANA à partir de Power Query Desktop

Pour se connecter à une base de données SAP HANA à partir de Power Query Desktop :

  1. Sélectionnez Obtenir des données > Base de données SAP HANA dans Power BI Desktop ou À partir de la base de données > À partir de la base de données SAP HANA dans le ruban Données dans Excel.

  2. Entrez le nom et le port du serveur SAP HANA auquel vous souhaitez vous connecter. L’exemple de la figure suivante utilise SAPHANATestServer sur le port 30015.

    Entrer les informations pour le serveur SAP HANA.

    Par défaut, le numéro de port est défini pour prendre en charge une base de données de conteneur unique. Si votre base de données SAP HANA peut contenir plusieurs conteneurs de bases de données multilocataires, sélectionnez Base de données système multiconteneur (30013). Si vous souhaitez vous connecter à une base de données locataire ou à une base de données avec un numéro d’instance autre que par défaut, sélectionnez Personnalisé dans le menu déroulant Port.

    Si vous vous connectez à une base de données SAP HANA à partir de Power BI Desktop, vous avez également la possibilité de sélectionner Importation ou DirectQuery. L’exemple de cet article utilise Importation, qui est la valeur par défaut (et le seul mode pour Excel). Pour plus d’informations sur la connexion à la base de données à l’aide de DirectQuery dans Power BI Desktop, accédez à Se connecter aux sources de données SAP HANA à l’aide de DirectQuery dans Power BI.

    Vous pouvez également entrer une déclaration SQL ou activer la liaison de colonne à partir d’options avancées. Informations supplémentaires, Se connecter à l’aide d’options avancées

    Une fois que vous avez entré toutes vos options, sélectionnez OK.

  3. Si vous accédez à une base de données pour la première fois, vous serez invité à entrer vos informations d’identification pour l’authentification. Dans cet exemple, comme le serveur SAP HANA nécessite des informations d’identification d’utilisateur de base de données, sélectionnez Base de données et entrez vos nom d’utilisateur et mot de passe. Si nécessaire, entrez vos informations de certificat de serveur.

    Entrez les informations d’identification pour le serveur.

    En outre, vous devrez peut-être valider le certificat de serveur. Pour plus d’informations sur l’utilisation des sélections Valider le certificat de serveur, consultez Utilisation du chiffrement SAP HANA. Dans Power BI Desktop et Excel, la sélection Valider le certificat de serveur est activée par défaut. Si vous avez déjà configuré ces sélections dans l’Administrateur de sources de données ODBC, décochez la case Valider le certificat de serveur. Pour en savoir plus sur l’utilisation de l’administrateur de source de données ODBC pour configurer ces sélections, consultez Configurer SSL pour l’accès client ODBC à SAP HANA.

    Pour plus d’informations sur l’authentification, consultez Authentification avec une source de données.

    Une fois que vous avez renseigné toutes les informations requises, sélectionnez Se connecter.

  4. Dans la boîte de dialogue Navigateur, vous pouvez transformer les données dans l’éditeur Power Query en sélectionnant Transformer les données, ou charger les données en sélectionnant Charger.

Connectez-vous à une base de données SAP HANA de Power Query Online

Pour se connecter aux données SAP HANA à partir de Power Query Online :

  1. Dans la page Sources de données, sélectionnez Base de données SAP HANA.

  2. Entrez le nom et le port du serveur SAP HANA auquel vous souhaitez vous connecter. L’exemple de la figure suivante utilise SAPHANATestServer sur le port 30015.

  3. Si vous le souhaitez, entrez une déclaration SQL à partir des options avancées. Informations supplémentaires, Se connecter à l’aide d’options avancées

  4. Sélectionnez le nom de la passerelle de données locale à utiliser pour accéder à la base de données.

    Remarque

    Vous devez utiliser une passerelle de données locale avec ce connecteur, que vos données soient locales ou en ligne.

  5. Choisissez le type d’authentification que vous souhaitez utiliser pour accéder à vos données. Vous devez également entrer un nom d’utilisateur et un mot de passe.

    Remarque

    Actuellement, Power Query Online ne prend en charge que l’authentification de base.

  6. Sélectionnez Utiliser une connexion chiffrée si vous utilisez une connexion chiffrée, puis choisissez le fournisseur de chiffrement SSL. Si vous n'utilisez pas une connexion chiffrée, désactivez Utiliser une connexion chiffrée. Plus d’informations : Activer le chiffrement pour SAP HANA

    Connexion en ligne à la base de données SAP HANA.

  7. Sélectionnez Suivant pour continuer.

  8. Dans la boîte de dialogue Navigateur, vous pouvez transformer les données dans l’éditeur Power Query en sélectionnant Transformer les données, ou charger les données en sélectionnant Charger.

Se connecter à l’aide d’options avancées

Power Query fournit un ensemble d’options avancées que vous pouvez ajouter à votre requête si nécessaire.

Le tableau suivant décrit toutes les options avancées que vous pouvez définir dans Power Query.

Option avancée Description
Instruction SQL Plus d'informations, Importer des données à partir d’une base de données à l’aide d’une requête de base de données native
Activer la liaison de colonne Relie des variables aux colonnes d’un jeu de résultats SAP HANA pendant la récupération des données. Peut potentiellement améliorer les performances en contrepartie d’une utilisation légèrement plus élevée de la mémoire. Cette option n’est disponible que dans Power Query Desktop. Plus d’informations : Activer la liaison de colonne
ConnectionTimeout Durée qui contrôle le temps d’attente avant l’abandon d’une tentative de connexion au serveur. La valeur par défaut est de 15 secondes.
CommandTimeout Durée qui contrôle la durée pendant laquelle la requête côté serveur peut être exécutée avant d’être annulée. La valeur par défaut est de dix minutes.

Fonctionnalités prises en charge pour SAP HANA

La liste suivante montre les fonctionnalités prises en charge pour SAP HANA. Les fonctionnalités répertoriées ici ne sont pas toutes prises en charge dans toutes les implémentations du connecteur de base de données SAP HANA.

  • Les connecteurs Power BI Desktop et Excel pour une base de données SAP HANA utilisent le pilote ODBC SAP pour offrir la meilleure expérience utilisateur.

  • Dans Power BI Desktop, SAP HANA prend en charge les options DirectQuery et Importation.

  • Power BI Desktop prend en charge les modèles d’informations HANA, comme les vues d’analytique et de calcul, et bénéficie d’un mode de navigation optimisé.

  • Avec SAP HANA, vous pouvez également utiliser des commandes SQL dans la déclaration SQL de requête de base de données native pour vous connecter aux tables de lignes et de colonnes dans les tables du catalogue HANA, qui ne sont pas incluses dans les vues analytiques/de calcul fournies par l’expérience Navigator. Vous pouvez également utiliser le connecteur ODBC pour interroger ces tables.

  • Power BI Desktop comprend le mode de navigation optimisé pour les modèles HANA.

  • Power BI Desktop prend en charge les variables et paramètres d’entrée SAP HANA.

  • Power BI Desktop prend en charge les vues de calcul basées sur un conteneur HDI.

  • La fonction SapHana.Database prend désormais en charge les délais d’attente des connexions et des commandes. Informations supplémentaires : Se connecter à l’aide d’options avancées

    • Pour accéder à vos vues de calcul basées sur un conteneur HDI dans Power BI, assurez-vous que les utilisateurs de base de données HANA que vous utilisez avec Power BI ont l’autorisation d’accéder au conteneur de runtime HDI qui stocke les vues auxquelles vous souhaitez accéder. Pour accorder cet accès, créez un Rôle qui autorise l’accès à votre conteneur HDI. Attribuez ensuite le rôle à l’utilisateur de base de données HANA que vous utiliserez avec Power BI. (Cet utilisateur doit également avoir l’autorisation de lire les tables système dans le schéma _SYS_BI, comme habituellement.) Pour obtenir des instructions détaillées sur la création et l’affectation des rôles de base de données, consultez la documentation SAP officielle. Ce billet de blog SAP peut être un bon point de départ.

    • Il existe actuellement des limitations pour les variables HANA attachées aux vues de calcul basées sur HDI. Ces limitations sont dues à des erreurs côté HANA. Premièrement, il n’est pas possible d’appliquer une variable HANA à une colonne partagée d’une Vue de calcul basée sur un conteneur HDI. Pour supprimer cette limitation, effectuez une mise à niveau vers HANA 2 version 37.02 et ultérieure ou HANA 2 version 42 et ultérieure. Deuxièmement, les valeurs par défaut multi-entrées pour les variables et les paramètres ne sont pas affichées dans l’interface utilisateur Power BI. C’est une erreur dans SAP HANA qui entraîne cette limitation, mais SAP n’a pas encore annoncé de correctif.

Activer la liaison de colonne

Les données extraites de la source de données sont retournées à l’application dans les variables allouées par l’application à cet effet. Pour ce faire, l’application doit associer ou lier ces variables aux colonnes du jeu de résultats ; conceptuellement, ce processus est le même que les variables d’application de liaison aux paramètres de déclaration. Lorsque l’application lie une variable à une colonne de jeu de résultats, elle décrit cette variable ( adresse, type de données, et ainsi de suite) au pilote. Le pilote stocke ces informations dans la structure qu’il conserve pour cette déclaration et utilise les informations pour renvoyer la valeur de la colonne lorsque la ligne est extraite.

Actuellement, lorsque vous utilisez Power Query Desktop pour vous connecter à une base de données SAP HANA, vous pouvez sélectionner l’option avancée Activer la liaison de colonne pour activer la liaison de colonne.

Vous pouvez également activer la liaison de colonne dans les requêtes existantes ou dans les requêtes utilisées dans Power Query Online en ajoutant manuellement l’option EnableColumnBinding à la connexion dans la barre de formule Power Query ou dans l’éditeur avancé. Par exemple :

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

Il existe des limitations associées à l’ajout manuel de EnableColumnBinding l'option :

  • L’activation de la liaison de colonne fonctionne en mode Import et DirectQuery. Toutefois, la mise à niveau d’une requête DirectQuery existante pour utiliser cette option avancée n’est pas possible. Au lieu de cela, une nouvelle requête doit être créée pour que cette fonctionnalité fonctionne correctement.
  • Dans SAP HANA Server version 2.0 ou ultérieure, la liaison de colonne est tout ou rien. Si certaines colonnes ne peuvent pas être liées, aucune ne sera liée et l’utilisateur recevra une exception, par exemple, DataSource.Error: Column MEASURE_UNIQUE_NAME of type VARCHAR cannot be bound (20002 > 16384).
  • Les serveurs SAP HANA version 1.0 ne signalent pas toujours les longueurs de colonne correctes. Dans ce contexte, EnableColumnBinding autorise la liaison de colonne partielle. Pour certaines requêtes, cela peut signifier qu’aucune colonne n’est liée. Quand aucune colonne n’est liée, aucun avantage de performances n’est gagné.

Prise en charge des requêtes natives dans le connecteur de base de données SAP HANA

Le connecteur de base de données Power Query SAP HANA prend en charge les requêtes natives. Pour plus d’informations sur l’utilisation des requêtes natives dans Power Query, accédez à Importer des données à partir d’une base de données à l’aide d’une requête de base de données native.

Pliage des requêtes sur des requêtes natives

Le connecteur de base de données Power Query SAP HANA prend désormais en charge le pliage des requêtes sur les requêtes natives. Plus d'informations : Pliage des requêtes sur les requêtes natives

Remarque

Dans le connecteur de base de données Power Query SAP HANA, es requêtes natives ne prennent pas en charge les noms de colonnes en double quand elles EnableFolding sont définies sur true.

Paramètres dans les requêtes natives

Le connecteur de base de données SAP HANA Power Query prend désormais en charge les paramètres dans les requêtes natives. Vous pouvez spécifier des paramètres dans les requêtes natives à l’aide de la syntaxe Value.NativeQuery.

Contrairement à d’autres connecteurs, le connecteur de base de données SAP HANA prend en charge EnableFolding = True et spécifie des paramètres en même temps.

Pour utiliser des paramètres dans une requête, vous placez des points d’interrogation (?) dans votre code en tant qu’espaces réservés. Pour spécifier le paramètre, vous utilisez la SqlType valeur de texte et une valeur pour celle-ci SqlType dans Value. Value peut être n’importe quelle valeur M, mais doit être affectée à la valeur de l’objet spécifié SqlType.

Il existe plusieurs façons de spécifier des paramètres :

  • Fournir uniquement les valeurs sous forme de liste :

    { “Seattle”, 1, #datetime(2022, 5, 27, 17, 43, 7) }
    
  • Fournir les valeurs et le type sous forme de liste :

    { [ SqlType = "CHAR", Value = "M" ], 
       [ SqlType = "BINARY", Value = Binary.FromText("AKvN", BinaryEncoding.Base64) ], 
       [ SqlType = "DATE", Value = #date(2022, 5, 27) ] }
    
  • Mélanger et mettre en correspondance les deux :

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

SqlType suit les noms de type standard définis par SAP HANA. Par exemple, la liste suivante contient les types les plus courants utilisés :

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

L’exemple suivant montre comment fournir une liste de valeurs de paramètre.

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

L’exemple suivant montre comment fournir une liste d’enregistrements (ou mélanger des valeurs et des enregistrements) :

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

Prise en charge des attributs dynamiques

La façon dont le connecteur de base de données SAP HANA traite les colonnes calculées a été améliorée. Le connecteur de base de données SAP HANA est un connecteur « cube », et il existe des ensembles d’opérations (ajouter des éléments, réduire les colonnes, et ainsi de suite) qui se produisent dans l’espace « cube ». Cet espace de cube est exposé dans l’interface utilisateur Power Query Desktop et Power Query Online par l’icône « cube » qui remplace l’icône « table » plus courante.

Capture d'écran du côté gauche de l'affichage actuel dans Power Query, mettant en évidence l'icône de cube en haut de la colonne numéro de ligne.

Avant, lorsque vous ajoutiez une colonne de table (ou une autre transformation qui ajoute en interne une colonne), la requête « sortait de l’espace de cube » et toutes les opérations étaient effectuées au niveau de la table. À un moment donné, cette suppression pourrait entraîner l’arrêt du pliage de la requête. Effectuer des opérations de cube après l’ajout d’une colonne n’était plus possible.

Avec cette modification, les colonnes ajoutées sont traitées comme des attributs dynamiques dans le cube. Le fait que la requête reste dans l’espace de cube pour cette opération présente l’avantage de vous permettre de continuer à utiliser des opérations de cube, même après l’ajout de colonnes.

Remarque

Cette nouvelle fonctionnalité est disponible uniquement lorsque vous vous connectez aux vues de calcul dans SAP HANA Server version 2.0 ou ultérieure.

L’exemple de requête suivant tire parti de cette nouvelle fonctionnalité. Dans le passé, vous obteniez une exception « la valeur n’est pas un cube » lors de l’application de 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"

Étapes suivantes

Les articles suivants contiennent d’autres informations que vous pouvez trouver utiles lors de la connexion à une base de données SAP HANA.