SSIS et ACE 12.0 : Unspecified error

4 février 2014 1 commentaire

Si comme moi vous avez un package SSIS permettant de charger un fichier Excel via le provider Microsoft Access Database Engine 12.0 et que ce dernier est exécuté par un job via un compte proxy, vous serez certainement confronté à cette erreur :

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x80004005 Description: "Unspecified error".

Comme son nom l’indique, l’erreur est non spécifiée, prévoyez donc  de longues heures de recherches hasardeuses….

Lire la suite…

Catégories:SSIS

Comment gérer efficacement les paramètres SSRS multi-valués

11 janvier 2014 5 commentaires

Petit rappel, lorsque que plusieurs valeurs sont sélectionnées dans un paramètre SSRS, ce dernier nous renvoie une chaîne de caractères dans laquelle sont concaténées toutes les valeurs clés, séparées par des virgules.

Exemple : @myParam = ‘test 1,test2,test3,test 4,test 5′

Alors pour requêter vos données, par pitié, éviter les choses bien moches tel que :

  • du SQL dynamique dans une procédure stockée
  • du SQL dynamique embarqué dans votre dataset SSRS à l’aide d’une expression vous permettant de splitter les valeurs multiple des paramètres, …

Ces solutions hasardeuses créent des failles de sécurité; car qui dit SQL dynamique, dit injection de code possible => à éviter donc, comme la peste.
J’en profite pour glisser, au passage, quelques bonnes pratiques :

  • proscrire l’usage de SQL dynamique sur vos instances à l’aide de "policies"
  • arrêter d’embarquer du code SQL comme des bœufs dans vos rapports => utiliser des procédures stockées.

Mais alors comment faire pour gérer des paramètres SSRS multi-valués dans vos requêtes SQL ? Lire la suite…

Catégories:Reporting Services

Journées SQL Server Edition 2013

Pensez à réserver dans vos agenda les 02 et 03 décembre prochain afin d’assister à la 3ème édition des journées SQL Server.

Jss2013Bandeau

Comme tous les ans, l’événement est gratuit et aura lieu au Centre de Conférences Microsoft, 41 quai du Président Roosevelt à Issy-les-Moulineaux.

Pour résumer l’événement :

  • 2 jours de formation gratuites organisées par le GUSS (Site, Twitter)
  • 50 speakers
  • une trentaine de sessions
  • une dizaine de sponsors

Tous les sujets SQL Server y seront abordés : Moteur Relationel, BI, Cloud, Infrastructure, Big Data, ….

Planning JSS2013

Il y a de quoi satisfaire tout le monde !!!

Pour ma part j’aurai le plaisir de co-animer la session Data Quality (MDS, DQS) avec mes deux compères McNext-iens, Ismaïl Ben Lamine (BlogTwitter) et Julien Vidal.

Au plaisir de vous retrouvez nombreux et n’oubliez pas de vous inscrire !

Catégories:JSS

MDS Is that’s it ?

1 octobre 2013 2 commentaires

Suite à l’article paru sur le blog de Florian concernant l’avenir de la BI Microsoft, j’en profite pour compléter mon cahier de doléances en revenant rapidement sur ma vision de MDS. Bon pour ceux qui ne savent toujours pas ce que c’est, il s’agit de la solution Microsoftienne pour faire du Master Data Management.

Le produit est apparu avec SQL Server 2008R2, mais à mon avis très difficilement vendable en son temps à cause de sa lamentable interface web utilisateur. Certes cela profite à certains éditeurs comme Profisee, qui ont pu développer leur propre interface client bien plus riche …

Cela fait maintenant plus d’un an que SQL Server 2012 est en RTM mais je dois avouer que c’est la première fois que je l’utilise réellement chez un client (même si çà reste actuellement de l’expérimentation, j’ai bon espoir)

Lire la suite…

Catégories:MDS

Fini les vacances, c’est reparti …

20 septembre 2013 Poster un commentaire

SosRentrée

Les vacances sont déjà bien loin et la rentrée commence sur les chapeaux de roues. Certains sont même retournés sur les bancs de l’école le temps d’un samedi pour participer au premier SQL Saturday en France.

SQLSat251

Un grand merci à toute l’équipe du board du GUSS, au PASS, aux différents sponsors et à tous les speakers sans qui un tel événement n’aurait jamais eu lieu. Une première qui mérite un grand bravo.

Pour les plus curieux, rendez-vous sur les blogs des différents et incontournables contributeurs qui ont déjà fait leurs retours Djeepy, Florian, David

Désolé pour ceux que j’oublie….

N’hésitez pas à vous inscrire au GUSS ainsi qu’au PASS et à participer aux différents événements (de qualité) que ces associations proposent.

Catégories:SQL Saturday

Modélisation Cube – Exposer vos données par des vues

6 juillet 2013 11 commentaires

Analysis Services, que ce soit en mode Multidimensionnel ou Tabular, vous permet de vous connecter à votre entrepôt et d’importer les données en sélectionnant des tables, des vues ou bien des requêtes.

Certes l’utilisation de requêtes peut-être très pratique pour :

  • restreindre le périmètre des données à remonter dans le cube,
  • ajouter des colonnes calculées,
  • substituer certains libellés (en règle générale les booléens sont remplacés par des valeurs textuelles)
  • modifier certaines règles de gestions en cas de maintenance correctives afin de corriger une anomalie,
  • etc.

Cela semble tellement attractif que je n’ai pas souvenir d’avoir travaillé sur un cube dénué de requêtes nommées (sauf ceux que j’ai désignés :))

Lire la suite…

Import de fichiers Excel avec SSIS

25 juin 2013 3 commentaires

Ce type de source est loin d’être mon préféré et cela en raison du typage implicite des données effectué par le provider :

  • par défaut les colonnes texte sont typées en nvarchar(255) ou mémo (pour les chaines de plus de 255 caractères) et les numériques en réel. Pour convertir vos données dans le format désiré, vous n’avez plus qu’à utiliser un Data Conversion, je vous déconseille vivement de la faire via l’éditeur avancée mais bon (certains sont plus joueur que d’autres…)
  • de plus, quel que soit le provider (JET4.0 ou ACE12.0), le typage des données est effectué à l’aide d’un échantillonnage, par défaut sur les 8 premières lignes. Ce paramètre peut être modifié dans la base de registre

pour le Jet4.0 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

pour le ACE 12.0 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel

  • si vous avez une colonne contenant des valeurs textuelles et numériques il vous faudra alors aussi gérer les types mixtes. Pour cela, vous n’avez qu’à modifier la chaîne de connexion en ajoutant aux propriétés étendues la valeur IMEX=1, exemple :

pour le Jet4.0 : Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

pour le ACE 12.0 : Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\MyExcel.xlsx;Extended Properties="Excel 12.0 xml;HDR=Yes;IMEX=1"

Sachez toutefois que :

  • même si la valeur du TypeGuessRows est à 0, seules les 16 384 premières lignes sont scannées. Dommage si vous avez des chaines  longues de plus de 255 caractères ou bien des valeurs de types mixtes sur les lignes suivantes (cela m’est encore arrivé il y a peu), vous n’avez plus qu’à pleurer…
  • si le fichier Excel est en cours édition, il est verrouillé ce qui fera planté votre package SSIS
  • que le connecteur 64 bits pour Excel fonctionne, il suffit d’installer le ACE.OLEDEB.12.0 version 64 bits sur le serveur SSIS. Notez toutefois qu’il n’est pas possible d’installer les 2 versions du provider (32 et 64 bits) sur la même machine (mais qui de nos jours continue à installer Office sur les serveurs MS BI ?)

Mis à part ces considérations, les fichiers Excel peuvent s’avérer utiles du fait qu’un même classeur Excel puisse contenir plusieurs onglets (très pratique pour des tables de paramétrage "end-user"), et qu’un même onglet puisse contenir plusieurs tables. Rentrons dans le vif du sujet et voyons comment intégrer différentes tables contenues dans un seul et même onglet.

Lire la suite…

Catégories:SSIS
Suivre

Recevez les nouvelles publications par mail.

Joignez-vous à 98 followers

%d bloggers like this: