SAP IQ (anciennement connu sous le nom de SAP Sybase IQ ou Sybase IQ ; IQ pour Intelligent Query ) est un système logiciel de base de données relationnelle en colonnes , à l'échelle du pétaoctet, utilisé pour la veille stratégique , l'entreposage de données et les datamarts. Produit par Sybase Inc. , aujourd'hui une société SAP , sa fonction principale est d'analyser de grandes quantités de données dans un environnement à faible coût et hautement disponible. SAP IQ est souvent crédité d'avoir été le pionnier de la commercialisation de la technologie de stockage en colonnes.
SAP IQ repose sur une technologie de stockage en colonnes qui permet une compression rapide et une analyse ad hoc. SAP IQ adopte une approche d'interface ouverte envers son écosystème. SAP IQ est également intégré au portefeuille de produits Business Intelligence de SAP pour former une pile logicielle d'analyse commerciale de bout en bout et fait partie intégrante de l'architecture In-Memory Data Fabric et de la plateforme de gestion des données de SAP.
Histoire
Au début des années 1990, Expressway Technologies, Inc., basée à Waltham dans le Massachusetts, a développé l'Expressway 103, un moteur basé sur des colonnes , optimisé pour l'analyse, qui allait devenir Sybase IQ. Sybase a acquis Expressway et a réintroduit le produit en 1995 sous le nom d'IQ Accelerator, puis l'a renommé peu de temps après Sybase IQ, lui donnant le numéro de version 11.0.
En proposant le produit IQ dans le cadre d'un ensemble de technologies connexes souvent présentes dans un entrepôt de données (notamment Sybase Adaptive Server Enterprise , Replication Server, PowerDesigner et SQL Anywhere ), Sybase est devenue l'une des premières grandes entreprises à reconnaître le besoin de produits spécialisés pour le marché des entrepôts de données.
Avec la version 12.0, Sybase a remplacé l'interface de requête faiblement couplée d'Adaptive Server Enterprise par un couplage étroit avec SQL Anywhere.
La version 16 apporte un magasin de colonnes repensé pour les volumes de données extrêmes, à l'échelle du pétaoctet, et une compression de données plus extrême.
En 2014, SAP HANA, en collaboration avec ses partenaires BMMsoft, HP, Intel, NetApp et Red Hat, a annoncé le plus grand entrepôt de données au monde. Une équipe d'ingénieurs de SAP, BMMsoft, HP, Intel, NetApp et Red Hat a construit l'entrepôt de données à l'aide de SAP HANA et SAP IQ 16, avec BMMsoft Federated EDMT exécuté sur des serveurs HP DL580 utilisant des processeurs Intel Xeon E7-4870 sous Red Hat Enterprise Linux 6 et un stockage NetApp FAS6290 et E5460. Le développement et les tests de l'entrepôt de données de 12,1 Po ont été menés par le laboratoire SAP/Intel Petascale de Santa Clara, en Californie, et audités par InfoSizing, un auditeur indépendant certifié par le Transaction Processing Council.
Historique des versions
Avec la sortie de SP08, les numéros de version ont été modifiés pour correspondre aux numéros de version de SAP HANA et refléter l' intégration continue du produit avec SAP HANA. Le titre de la version actuelle, SP03, fait suite à SP02 et couvre toutes les plateformes non concernées par la version.
Structure de données en mémoire
La nouvelle approche de SAP rationalise et simplifie l'entreposage de données dans une structure de données en mémoire.

SAP IQ avec SAP HANA
Avec l'avènement du Big Data , SAP IQ s'est associé à SAP HANA pour proposer une plateforme d'analyse en mémoire distribuée. Il existe trois principales applications et cas d'utilisation qui tentent de capitaliser sur les atouts de SAP IQ en matière d'évolutivité et de performances en tant que processeur EDW et Big Data, tout en exploitant la vitesse en mémoire de SAP HANA pour le reporting opérationnel :
SAP IQ en tant que service en ligne (NLS) pour SAP HANA
https://blogs.sap.com/2016/10/12/sap-nls-solution-sap-bw
SAP HANA pour le reporting opérationnel avec SAP IQ pour le traitement des big data (NLS)
Dans ce scénario, les données SAP Enterprise Resource Planning (ERP) sont transférées vers SAP HANA, qui agit comme un magasin de données opérationnelles pour une analyse immédiate. Une fois les données analysées, elles sont intégrées dans SAP IQ via des mécanismes de stockage en ligne (comme décrit ci-dessus). Ici, SAP IQ agit comme un entrepôt de données d'entreprise qui reçoit des données provenant de diverses sources traditionnelles (telles que les bases de données OLTP et les systèmes de fichiers) et du magasin de données opérationnelles SAP HANA (ODS)
https://blogs.sap.com/2019/05/22/q-the-easy-installer-for-sap-iq/
SAP IQ en tant qu'entrepôt de données d'entreprise (EDW) avec SAP HANA en tant que Data Mart agile
Lorsque SAP IQ est utilisé comme EDW, il peut également être complété par la technologie in-memory de HANA. Les utilisations courantes incluent les rapports de planification et d'analyse où un traitement OLTP simultané est nécessaire. Dans ce cas, les données circulent de SAP IQ vers SAP HANA. SAP BusinessObjects BI peut être utilisé pour obtenir une visibilité sur les deux plates-formes.
Technologie

Pour un utilisateur, SAP IQ ressemble à n'importe quel SGBD relationnel avec une couche de langage basée sur SQL accessible via des pilotes ODBC / JDBC . Cependant, à l'intérieur, Sybase IQ est un SGBD orienté colonnes , qui stocke les tables de données sous forme de sections de colonnes de données plutôt que sous forme de lignes de données comme la plupart des bases de données transactionnelles.
Architecture de magasin à colonnes
L'orientation par colonnes présente un certain nombre d'avantages. Si une recherche est effectuée pour des éléments correspondant à une valeur particulière dans une colonne de données, seuls les objets de stockage correspondant à cette colonne de données dans la table doivent être consultés. Une base de données traditionnelle basée sur des lignes devrait lire la table entière, de haut en bas. Un autre avantage est que, lorsqu'elle est correctement indexée, une valeur qui devrait être stockée une fois dans chaque ligne de données dans une base de données traditionnelle n'est stockée qu'une seule fois, et dans SAP IQ, un index n-bit est utilisé pour accéder aux données. L'indexation nbit et à plusieurs niveaux est utilisée pour permettre une compression accrue et des chargements par lots incrémentiels rapides.
De plus, le stockage basé sur des colonnes permet à SAP IQ de compresser efficacement les données à la volée.
-
Magasin de colonnes SAP IQ
Technologie d'indexation
Avant SAP IQ 16, chaque page de données était structurée comme un tableau de cellules de taille fixe, de sorte que toutes les valeurs avaient le même type de données. Bien que cette approche de stockage soit efficace pour les données structurées et de longueur fixe, elle ne s'applique pas aux données moins structurées et de taille variable que l'on rencontre aujourd'hui. Pour lutter contre l'inefficacité du stockage et stocker des données de taille variable avec un minimum d'espace perdu, chaque page est composée de cellules de taille variable qui sont regroupées étroitement ; l'architecture de stockage en colonnes prend en charge un nombre variable de cellules par page et divers formats de page dans une colonne. SAP IQ applique également des algorithmes de compression Lempel-Ziv-Welch ( LZW ) à chaque page de données lorsqu'elle est écrite sur le disque, afin de réduire considérablement le volume de données.
Les bitmaps sont utilisés pour les index secondaires.
-
Indexation SAP IQ
Cadre de traitement massivement parallèle
SAP IQ dispose d'une infrastructure de traitement massivement parallèle (MPP) basée sur un environnement partagé qui prend en charge le traitement des requêtes distribuées. La plupart des autres produits compatibles MPP ont tendance à être basés sur des environnements sans partage . L'avantage du partage intégral est qu'il est plus flexible en termes de variété de requêtes pouvant être optimisées, en particulier pour équilibrer les besoins de nombreux utilisateurs simultanés. L'inconvénient est que dans les cas extrêmes, la concurrence entre les processeurs pour accéder à un pool de stockage partagé (généralement un réseau de stockage) peut entraîner des conflits d'E/S , ce qui affecte les performances des requêtes.[12]
Cependant, l'architecture de stockage susmentionnée de SAP IQ permet aux couches de calcul et de stockage d'évoluer indépendamment les unes des autres et permet également à ces ressources d'être provisionnées à la demande pour une meilleure utilisation sans restructurer la base de données sous-jacente.
Architecture multiplexée
SAP IQ utilise une architecture de grille en cluster, composée de clusters de serveurs SAP IQ, ou Multiplex. Ces clusters sont utilisés pour faire évoluer les performances pour un grand nombre de requêtes simultanées ou de requêtes très complexes. Cette architecture repose sur une architecture de partage total dans laquelle tous les nœuds de calcul interagissent avec le même stockage partagé et les requêtes ont la possibilité de se répartir sur tous les nœuds de calcul. Le Multiplex dispose d'un nœud coordinateur qui gère le catalogue de bases de données et coordonne les écritures transactionnelles dans le magasin. D'autres nœuds peuvent être des nœuds de lecture uniquement ou des nœuds de lecture et d'écriture, comme le nœud coordinateur. La structure de stockage peut être implémentée avec de nombreuses technologies qui permettent le partage entre les nœuds multiplex.
Cette architecture a de multiples utilisations, notamment l'équilibrage de la charge de travail et les data marts virtuels élastiques. L'équilibrage de la charge de travail est réalisé par le moteur de requête SAP IQ via une augmentation/diminution dynamique du parallélisme en réponse aux changements d'activité du serveur. Il existe un basculement automatique si un nœud cesse de participer à une requête, et les autres nœuds reprendront le travail initialement attribué au nœud défaillant afin que la requête puisse se terminer. Côté client, la compatibilité avec les équilibrages de charge externes garantit que les requêtes sont lancées sur des serveurs physiques de manière équilibrée pour éliminer les goulots d'étranglement. Les nœuds physiques du multiplex peuvent être regroupés en « serveurs logiques » qui permettent d'isoler les charges de travail les unes des autres (à des fins de sécurité ou d'équilibrage des ressources) ; des machines peuvent y être ajoutées en fonction des changements de la demande. L'objectif de l'architecture de grille est de permettre la résilience même lors des transactions globales.
-
Architecture multiplexée SAP IQ
-
Cas d'utilisation multiplex de SAP IQ
Moteur de chargement
Le moteur de chargement SAP IQ peut être utilisé pour le chargement par lots incrémentiel, à faible latence, simultané et en masse (avec des fichiers de données client et serveur). Le processus de chargement en masse permet à plusieurs processus de chargement de se produire simultanément, si les chargements concernent des tables différentes. Les données peuvent être chargées à partir d'autres bases de données ainsi que de fichiers. Le contrôle de version des instantanés au niveau de la page permet des chargements et des requêtes simultanés, le verrouillage se produisant uniquement au niveau de la table. Avec SAP Replication Server, désormais amélioré pour optimiser les chargements dans SAP IQ, les transactions sont compilées dans le plus petit ensemble d'opérations, puis des chargements en masse par micro-lots dans SAP IQ sont effectués, ce qui donne l'apparence de chargements continus en temps réel.
Le chargeur en bloc exécute désormais toutes les opérations en parallèle pour exploiter pleinement tous les cœurs du serveur, supprimer les goulots d'étranglement et maintenir la productivité de tous les threads, au lieu de sérialiser le processus. Le processus de chargement reste un processus en deux phases, la première lecture des données brutes et la création d'index FP, puis la seconde création d'index secondaires, mais tout est exécuté en parallèle. Les index High Group, sur lesquels l'optimiseur de requêtes s'appuie pour obtenir des informations sur les colonnes/lignes contenant quelles valeurs de données, sont désormais structurés comme un ensemble de niveaux, augmentant à mesure que vous descendez dans la pyramide.
Enfin, SAP IQ introduit un magasin Delta RLV (Row Level Versioned) optimisé pour l'écriture, qui permet des chargements de données à grande vitesse et une disponibilité rapide des données pour les utilisateurs. Ce magasin est minimalement indexé et compressé, avec un verrouillage au niveau des lignes pour l'écriture simultanée, et son propre journal des transactions, il est uniquement en ajout et agit comme un compagnon du magasin principal, les données étant chargées à grande vitesse dans le magasin RLV et migrant vers le magasin principal ultérieurement, fusionnant avec lui périodiquement. Pour l'utilisateur, il n'apparaît pas comme si deux entités distinctes étaient en fonctionnement et les requêtes fonctionnent de manière transparente sur les deux magasins. Pour en tirer parti, les utilisateurs peuvent spécifier des tables de base de données « chaudes » particulières comme tables RLV.
-
Moteur de chargement SAP IQ
Cadre et API client
SAP IQ propose des API de requête basées sur des normes SQL ANSI pures (avec quelques restrictions), qui incluent la prise en charge de la recherche OLAP et en texte intégral. Les procédures stockées sont prises en charge dans les dialectes ANSI SQL et Transact-SQL et peuvent être exécutées de manière planifiée ou immédiate. Il existe également des pilotes de base de données pour divers langages de programmation tels que JAVA, C/C++, PHP, PERL, Python, Ruby et ADO.Net.
Traitement des données non structurées
SAP IQ est un moteur d'analyse capable d'interroger des données structurées et non structurées et de regrouper les résultats. SAP IQ a introduit un nouvel index de texte et une clause SQL « contient » pour faciliter cette opération en recherchant des termes dans un blob de texte non structuré. Les partenariats de SAP Sybase avec des fournisseurs permettent d'intégrer diverses formes binaires de fichiers texte dans SAP IQ et de créer des index de texte pour ces derniers. Ces index de texte préparent les données pour les applications d'analyse de texte de niveau supérieur afin d'effectuer des recherches en texte intégral dans SAP IQ via des instructions SELECT. La syntaxe SELECT peut être utilisée par les applications effectuant la tokenisation, la catégorisation et d'autres analyses de texte.
Cadre d'analyse et d'extensibilité en base de données
Les analyses en base de données reposent sur le concept fondamental de garder les algorithmes d'analyse proches des données pour de meilleures performances. Le cadre d'extensibilité, appelé « analyse en base de données », permet d'intégrer des fonctions d'analyse dans le moteur de base de données de SAP IQ, en déplaçant les analyses dans la base de données, au lieu de les transférer vers un environnement spécialisé en dehors de la base de données, un processus sujet aux erreurs et plus lent. Des fonctions prédéfinies sont disponibles en mode natif et via des partenaires de SAP IQ fournissant des bibliothèques statistiques et d'exploration de données spécialisées qui se connectent à SAP IQ. Ce cadre augmente la puissance de SAP IQ pour effectuer des traitements et des analyses avancés, car les données n'ont pas besoin d'être déplacées hors de la base de données vers un environnement spécialisé pour les analyses. Toutes les données et tous les résultats obtenus peuvent être partagés via le SGBD et peuvent être facilement acquis via une interface SQL. Grâce aux fonctions définies par l'utilisateur (UDFS), les partenaires peuvent étendre le SGBD avec des calculs personnalisés, en fournissant des bibliothèques statistiques et d'exploration de données spécialisées qui se connectent directement à SAP IQ pour améliorer ses performances de traitement et d'analyse avancés.
Sécurité
SAP IQ propose plusieurs fonctionnalités, incluses dans le produit de base et pouvant être concédées sous licence séparément, pour aider à protéger la sécurité des données de l'utilisateur. Une nouvelle fonctionnalité introduite dans IQ 16 est le contrôle d'accès basé sur les rôles (RBAC) qui permet une séparation des tâches et respecte le principe du moindre privilège , en permettant la décomposition des opérations privilégiées en ensembles à granularité fine qui peuvent être accordés individuellement aux utilisateurs. Sont inclus dans le produit de base : les utilisateurs, les groupes et les autorisations, les autorités d'administration de base de données, les stratégies de connexion utilisateur, le chiffrement de base de données, la sécurité de la couche de transport, IPV6, le contrôle d'accès basé sur les rôles et l'audit de base de données. Des fonctionnalités supplémentaires font partie d'une option sous licence appelée option de sécurité avancée : chiffrement FIPS, authentification Kerberos, authentification LDAP et chiffrement des colonnes de base de données.
-
Sécurité SAP IQ
Gestion du cycle de vie de l'information (ILM)
Dans le cadre d'ILM, SAP IQ permet aux utilisateurs de créer plusieurs DBSpaces utilisateur (unités logiques de stockage/conteneurs pour les objets de base de données) pour organiser les données. Cela peut être utilisé pour séparer les données structurées ou non structurées, les regrouper en fonction de l'âge et de la valeur, ou pour partitionner les données de table. Les DBSpaces peuvent également être marqués comme étant en lecture seule pour permettre une vérification de cohérence et une sauvegarde ponctuelles. Une autre application d'ILM est la possibilité de partitionner les tables et de placer des parties mobiles le long de la structure de stockage et des capacités de sauvegarde ; cela permet un processus de gestion du stockage où les données circulent via un stockage hiérarchisé, passant d'un stockage plus rapide et plus coûteux à un stockage plus lent et moins cher à mesure qu'il vieillit, en partitionnant les données en fonction de leur valeur.
Haute disponibilité et reprise après sinistre
La configuration multiplex offre une évolutivité et une haute disponibilité pour les nœuds de calcul, car un nœud coordinateur multiplex peut basculer vers un nœud coordinateur alternatif.
SAP IQ Virtual Backup permet également aux utilisateurs de sauvegarder rapidement des données. Grâce à la technologie de réplication de stockage, les données sont copiées en continu, ce qui permet de réaliser des sauvegardes rapides et « en coulisses ». Une fois les sauvegardes virtuelles terminées, elles peuvent être vérifiées par des tests et des restaurations. Les données d'entreprise peuvent être copiées à des fins de développement et de test. Il ne reste ensuite plus qu'à terminer la sauvegarde à un moment cohérent sur le plan transactionnel. SAP affirme que la reprise après sinistre est plus facile avec une approche MPP entièrement partagée. L'outil de modélisation SAP Sybase PowerDesigner permet aux utilisateurs de créer un modèle ILM qui peut être déployé avec SAP IQ. Les types de stockage, les espaces de base de données et les phases du cycle de vie peuvent être définis dans un modèle ILM et l'outil peut être utilisé pour générer des rapports et créer des scripts de création et de déplacement de partitions.
Intégration Hadoop
SAP IQ fournit une fédération avec le système de fichiers distribué Hadoop (HDFS), un framework très populaire pour le Big Data, afin que les utilisateurs d'entreprise puissent continuer à stocker des données dans Hadoop et à profiter de ses avantages. L'intégration est réalisée de quatre manières différentes, en fonction des besoins de l'utilisateur, via la fédération côté client, ETL, les données et la fédération de requêtes. La fédération côté client joint les données d'IQ et Hadoop au niveau de l'application cliente tandis que la fédération ETL permet à l'utilisateur de charger les données Hadoop dans les schémas de stockage de colonnes d'IQ. Les données HDFS peuvent également être jointes aux données IQ à la volée via des requêtes SQL d'IQ, et enfin les résultats des tâches MapReduce peuvent être combinés avec les données IQ, également à la volée.
Centre de contrôle SAP
SAP Control Center remplace Sybase Central en tant qu'outil graphique Web d'administration et de surveillance. SAP Control Center peut être utilisé pour surveiller les serveurs et les ressources SAP Sybase (nœud, multiplex) à partir de n'importe quel emplacement, ainsi que pour surveiller les performances et repérer les tendances d'utilisation. L'application Web dispose d'une architecture de plug-in à plusieurs niveaux composée d'un serveur et d'agents basés sur des produits qui ramènent les performances SAP Sybase au serveur Control Center.
Analyses basées sur le Web
SAP IQ est fourni avec des pilotes d'application compatibles Web facilitant l'accès à SAP IQ à partir de divers environnements de programmation et d'exécution Web 2.0 (Python, Perl, PHP, .Net, Ruby). Grâce à la fédération de requêtes avec d'autres bases de données, les développeurs peuvent créer des applications qui interagissent avec plusieurs sources de données en même temps (ainsi qu'avec des plates-formes de base de données d'autres fournisseurs). Des tables proxy de fédération qui correspondent à des tables dans des bases de données externes peuvent être créées ; elles sont matérialisées sous forme de tables en mémoire mais avec lesquelles il est possible d'interagir comme si elles résidaient dans SAP IQ. De cette façon, les sources de données peuvent être combinées dans une vue unifiée.
Plateformes prises en charge
SAP IQ prend également en charge l'intégration d'algorithmes externes écrits en C++ et Java . Les requêtes SQL peuvent appeler ces algorithmes, ce qui permet l'exécution d'analyses en base de données, ce qui offre de meilleures performances et une meilleure évolutivité. De plus, Sybase IQ fournit également des pilotes pour l'accès via des langages tels que PHP , Perl , Python et Ruby on Rails .
SAP IQ prend en charge la plupart des principales plates-formes de systèmes d'exploitation, notamment :
- Sun Solaris 64 bits
- Red Hat Linux 64/32 bits
- SuSE Linux 64/32 bits
- HP-UX 64 bits
- HP-UX Itanium 64 bits
- IBM-AIX 64 bits
- Windows 64/32 bits
Clients
Sybase affirme que Sybase IQ est actuellement installé sur plus de 2000 sites clients. Parmi ses clients notables figurent comScore Inc. , CoreLogic , Investment Technology Group (ITG), et l'Internal Revenue Service (IRS) des États-Unis.
Bien que Sybase IQ ait été largement utilisé pour des déploiements ciblés de type datamart, il a également été déployé comme entrepôt de données d'entreprise.