Commande ACCESSDATA
Importe des données à partir de diverses sources de données compatibles ODBC.
La forme de la commande est ACCESSDATA64 ou ACCESSDATA32 selon que vous utilisez un pilote ODBC 64 bits ou 32 bits.
Syntaxe
{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Pilote"|"Dsn"|"Fichier"}} NAME valeur <USER id_utilisateur> <PASSWORD num | PROMPT_PASSWORD> TO nom_table CHARMAX longueur_champ_max MEMOMAX longueur_champ_max <ALLCHARACTER> SOURCE (paramètres_connexion) <HASH(valeur_salt; champs)>
SQL_QUERY(
(syntaxe_SQL)
) END_QUERY
Paramètres
| Nom | Description |
|---|---|
| CONNECTOR | ODBC {"Pilote"|"Dsn"|"Fichier"} |
Type de connexion ODBC que vous souhaitez effectuer :
|
| NAME valeur |
Nom du connecteur de données Analytics, du pilote ODBC ou du DSN. Par exemple :
|
|
USER id_utilisateur optionnel |
ID utilisateur pour les sources de données exigeant un ID utilisateur. |
|
PASSWORD num | PROMPT_PASSWORD optionnel |
Pour les sources de données nécessitant un mot de passe :
Si vous utilisez PASSWORD num, vous devez spécifier une définition de mot de passe créée auparavant. Pour plus d'informations, consultez la section Commande PASSWORD et Commande SET. Astuce L'utilisation de la commande PASSWORD conjointement avec PASSWORD num ressemble à l'utilisation du paramètre PROMPT_PASSWORD. Les deux méthodes demandent un mot de passe à l'utilisateur. PROMPT_PASSWORD présente l'intérêt d'autoriser la mise à jour de id_utilisateur. |
| TO nom_table |
Emplacement vers lequel envoyer les résultats de la commande :
|
|
CHARMAX longueur_champ_max |
La longueur maximale en caractères d'un champ de la table Analytics qui provient d'une donnée de type caractère dans la source que vous importez. La valeur par défaut est 50. Les données dépassant la longueur de champ maximale sont tronquées lors de l'importation dans Analytics. |
|
MEMOMAX longueur_champ_max |
Longueur maximale en caractères des champs de texte, de commentaire ou mémo que vous importez. La valeur par défaut est 100. Les données dépassant la longueur de champ maximale sont tronquées lors de l'importation dans Analytics. |
|
ALLCHARACTER optionnel |
Attribue automatiquement le type de données caractère à tous les champs importés. Une fois que les données sont dans Analytics, vous pouvez affecter différents types (Numérique ou DateHeure par exemple) de données aux champs et en spécifier les informations de format. Astuce ALLCHARACTER s'avère utile si vous importez une table contenant des valeurs d'identifiants numériques. Vous pouvez utiliser ALLCHARACTER pour éviter que Analytics attribue automatiquement le type de données Numérique aux valeurs devant utiliser le type de données Caractère. |
| SOURCE paramètres_connexion |
Paramètres de connexion (chaîne de connexion) requis pour se connecter à la source de données. |
|
HASH(valeur_salt; champs) optionnel |
Importe les champs spécifiés sous forme de valeurs de hachage cryptographiques. Les valeurs de hachage sont des transformations à sens unique. Elles ne peuvent pas être décodées une fois les champs importés :
HASH("QZ3x7"; "SSN_NO; CC_NO; Nom")
Pour obtenir des informations sur la comparaison de valeurs hachées pendant l'importation avec des valeurs hachées dans ACLScript, consultez la rubrique Comparaison de données hachées à l'aide d'ACCESSDATA avec des données hachées à l'aide de la fonction HASH( ) d'ACLScript. |
| SQL_QUERY (syntaxe_SQL) END_QUERY |
Instruction IMPORT de SQL. Tout ce qui se trouve entre parenthèses fait partie de la requête SQL et doit être une requête SQL valide. |
Exemples
Importation de données à l'aide d'un connecteur de données Analytics natif
Vous devez importer des données du service de données cloud Amazon Redshift. Pour ce faire, vous utilisez le connecteur de données Analytics Amazon Redshift :
ACCESSDATA64 CONNECTOR NAME "Amazon Redshift" USER "utilisateur_ACL" PROMPT_PASSWORD TO "Historique_Autorisations.FIL" CHARMAX 50 MEMOMAX 100
SOURCE( boolsaschar=0;cachesize=100;database=usage;declarefetchmode=0;maxbytea=255;maxlongvarchar=8190;maxvarchar=255;port=5439;servername=acl_test.highbond.com;singlerowmode=1;sslmode=require;textaslongvarchar=0;usemultiplestatments=0;useunicode=1)
SQL_QUERY(
SELECT
"historique_autorisations"."organisation" AS "organisation",
"historique_autorisations"."email_utilisateur" AS "email_utilisateur",
"historique_autorisations"."id_plan" AS "id_plan",
"historique_autorisations"."date_début" AS "date_début",
"historique_autorisations"."date_fin" AS "date_fin"
FROM
"prm"."historique_autorisations" "historique_autorisations"
)) END_QUERY
Importation de données à l'aide d'un pilote ODBC Windows
Vous devez importer des données à partir d'une base de données Microsoft Access. Pour ce faire, vous utilisez un pilote ODBC Windows pour vous connecter à MS Access et effectuer l'importation :
ACCESSDATA32 ODBC "Pilote" NAME "Pilote Microsoft Access (*.mdb)" TO "Factures.FIL" CHARMAX 50 MEMOMAX 100
SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données\Sample.mdb;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données;driverid=281;fil=MS Access;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;usercommitsync=Yes)
SQL_QUERY(
SELECT
`Client`.`ID_Client` AS `ID_Client`,
`Client`.`Société` AS `Société`,
`Client`.`Adresse` AS `Adresse`,
`Client`.`Ville` AS `Ville`,
`Client`.`Région` AS `Région`,
`Client`.`CodePostal` AS `CodePostal`,
`Client`.`Pays` AS `Pays`,
`Client`.`Téléphone` AS `Téléphone`,
`Commandes`.`ID_commande` AS `ID_commande`,
`Commandes`.`ID_Client` AS `ID_Client_Commandes`,
`Commandes`.`IDProd` AS `IDProd`,
`Commandes`.`DateCommande` AS `DateCommande`,
`Commandes`.`Quantité` AS `Quantité`,
`Produit`.`IDProd` AS `IDProd_Produit`,
`Produit`.`Nom_de_produit` AS `Nom_de_produit`,
`Produit`.`Prix_unitaire` AS `Prix_unitaire`,
`Produit`.`Descript` AS `Descript`,
`Produit`.`ShipWt` AS `ShipWt`
FROM
(`Client` `Client`
INNER JOIN
`Commandes` `Commandes`
ON `Client`.`ID_Client` = `Commandes`.`ID_Client`
)
INNER JOIN
`Produit` `Produit`
ON `Commandes`.`IDProd` = `Produit`.`IDProd`
WHERE
(
`Client`.`Région` = 'BC'
OR `Client`.`Région` = 'WA'
)
) END_QUERY
Importation de données à l'aide d'un DSN (nom de source de données) Windows
Vous devez importer des données à partir d'un fichier Microsoft Excel. Pour ce faire, vous utilisez un DSN Windows pour vous connecter à Excel et effectuer l'importation :
ACCESSDATA32 ODBC "Dsn" NAME "Fichiers Excel" TO "Trans_Avril_15_limite.FIL" CHARMAX 50 MEMOMAX 100
SOURCE( dbq=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données\Trans_Avril.xls;defaultdir=C:\Users\lachlan_murray\Documents\ACL Data\Exemple de fichiers de données;driverid=1046;maxbuffersize=2048;pagetimeout=5)
SQL_QUERY(
SELECT
`Trans_Avr_`.`NUMCARTE` AS `NUMCARTE`,
`Trans_Avr_`.`MONTANT` AS `MONTANT`,
`Trans_Avr_`.`DATE_TRANS` AS `DATE_TRANS`,
`Trans_Avr_`.`CODES` AS `CODES`,
`Trans_Avr_`.`NUMCLIENT` AS `NUMCLIENT`,
`Trans_Avr_`.`DESCRIPTION` AS `DESCRIPTION`
FROM
`Trans_Avr$` `Trans_Avr_`
WHERE
(
`Trans_Avr_`.`DATE_TRANS` <= {ts '2003-04-15 00:00:00'}
)
) END_QUERY
Remarques
Remarque
Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.
Mises à jour du connecteur de données
Lorsque vous mettez à niveau Analytics, Agent Robots ou AX Serveur, vous devez tester tous vos scripts qui importent des données à l'aide de l'un des connecteurs de données Analytics (commande ACCESSDATA).
Il est possible que des modifications apportées par des sources de données tierces ou des fournisseurs de pilotes ODBC aient nécessité la mise à jour d'un ou plusieurs connecteurs de données. Les connexions de données écrites sous forme de scripts peuvent avoir besoin d'être mises à jour afin de continuer à fonctionner correctement.
- Ré-exécuter l'importation La façon la plus simple de mettre à jour une connexion est d'effectuer manuellement une importation à l'aide de la fenêtre Accès aux données de la version mise à niveau d'Analytics. Copiez la commande ACCESSDATA du journal et utilisez-la pour mettre à jour votre script.
Remarque
Avant de vous connecter à une source de données et de réexécuter l'importation, effacez le cache du connecteur pour vider le jeu existant de noms de tables.
Dans l'onglet Connexions existantes de la fenêtre Accès aux données, à côté du nom du connecteur, sélectionnez
> Effacer le cache. - Mettre à jour les spécifications des champsVous pouvez également avoir besoin de mettre à jour les spécifications des champs dans le corps du script pour les aligner avec les modifications du schéma de table dans la source de données ou le pilote ODBC. Les modifications possibles comprennent les noms des champs, les types de données des champs et les longueurs de champ et d'enregistrement.
- Vérifier les résultats des filtrages Vous devez également vérifier les résultats des filtrages que vous appliquez dans le cadre de l'importation de données. Confirmez que le filtrage des importations inclut et exclut correctement les enregistrements.
Création de paramètres de connexion ODBC et d'instructions IMPORT SQL
Les paramètres de connexion ODBC ainsi que les instructions IMPORT SQL sont souvent assez longs et complexes, comme illustré dans les exemples.
Le moyen le plus simple de créer ces portions de la commande ACCESSDATA consiste à utiliser dans un premier temps la fenêtre d'accès aux données dans Analytics pour vous connecter à la source de données cible, puis à importer les données dans un deuxième temps. Vous pouvez ensuite copier l'intégralité de la commande ACCESSDATA à partir de la trace, y compris les paramètres de connexion et l'instruction IMPORT, et personnaliser la commande selon vos besoins.
Valeur de mot de passe supprimée
Lorsque vous utilisez la fenêtre Accès aux données dans Analytics pour exécuter la commande ACCESSDATA et que vous fournissez un mot de passe, la valeur du mot de passe n'est pas écrite dans la trace. À la place, le paramètre PROMPT_PASSWORD est substitué.
Fichiers traces ACCESSDATA
Deux fichiers traces enregistrent les transactions associées à la commande ACCESSDATA. Ils peuvent être utilisés pour résoudre des problèmes en cas d'échec de connexion des données :
- ServerDataAccess.log enregistre toutes les activités et erreurs avant l'importation des données
Emplacement : C:\Users\<compte utilisateur>\AppData\Local\ACL\ACL for Windows\Data Access\ServerDataAccess.log
Remarque
Le « Serveur » dans ServerDataAccess.log fait référence au composant d'accès aux données d'Analytics s'exécutant en local sur l'ordinateur où Analytics est installé.
- DataAccess.log enregistre les informations sur l'opération d'importation et le projet Analytics dans lequel vous importez des données
Emplacement : ..\<dossier de projet Analytics>\DataAccess.log
Comparaison de données hachées à l'aide d'ACCESSDATA avec des données hachées à l'aide de la fonction HASH( ) d'ACLScript
Même si vous ne pouvez pas lire les valeurs brutes des données hachées, elles restent utiles pour combiner ou analyser des données.
Si vous souhaitez comparer des valeurs hachées par ACCESSDATA pendant l'importation avec des valeurs hachées à l'aide de la fonction HASH( ) d'ACLScript, vous devez convertir les champs numériques ou DateHeure Analytics en valeurs de type caractère et supprimer l'intégralité des espaces de fin et de début avant de hacher les données.
Les champs DateHeure doivent utiliser les formats suivants lorsqu'ils sont convertis en caractère :
- DateHeure "AAAA-MM-JJ hh:mm:ss"
- Date "AAAA-MM-JJ"
- Heure "hh:mm:ss"
L'exemple qui suit utilise les fonctions STRING( ) et ALLTRIM( ) pour convertir un champ numéro de carte de crédit en données de type caractère avant de hacher la valeur à l'aide de la fonction HASH( ) d'ACLScript :
COMMENT ACL HASH fonction utilisée après l'importation des données HASH(ALLTRIM(STRING(CC_No; 16)); "QZ3x7")
Une fois que vous avez haché les valeurs Analytics, vous pouvez les comparer aux valeurs hachées dans le cadre de l'importation de commande ACCESSDATA.