Premiers pas avec SAS/ACCESS interface to Big Query
Dans cet article je vous propose de faire connaissance avec le module SAS/ACCESS Interface to Google Big Query. J'en profite pour remercier Younes Sammour pour son assistance technique.
Ce qui donne :
Une petite explication des paramètres du libname est nécessaire :
CRED_PATH spécifie l'emplacement d'un fichier d'informations d'identification qui active l'authentification auprès de Google Cloud Platform. Il s'agit du fichier json exporté en suivant mes explications un peu plus haut dans cet article.
PROJECT spécifie l'ID de projet pour un projet Google Cloud Platform.
QUALIFIER doit contenir le nom du dataset (ici, bigquery-public-data) et non le nom du projet lui-même (franih)
SCHEMA spécifie le schéma à utiliser lors de l'accès aux tables et aux vues d'une base de données.
Créer un compte de service Google
Pour vous connecter à Google Bigquery, la première étape consiste à créer un compte de service. Un compte de service est un type spécial de compte qui appartient à une application et non à une personne. Ce compte dispose d'autorisations pour accéder aux ressources dont il a besoin. De cette façon, le compte de service est l'identité du service. Les autorisations du compte de service contrôlent les ressources auxquelles le service peut accéder. Un compte de service est identifié par son adresse électronique, qui lui est propre (Le format suivant:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com). Les comptes de service n'ont pas de mot de passe et ne peuvent pas se connecter via des navigateurs ou des cookies.Les comptes de service sont associés à des paires de clés RSA privées / publiques utilisées pour l'authentification auprès de Google. A noter que les paires de clés gérées par Google impliquent que Google stocke les parties publique et privée de la clé (toujours conservée en escrow et jamais directement accessible) Pour accéder à l'interface de création du compte de service, vous pouvez utiliser le lien suivant (ou depuis votre console Google Cloud ) : https://console.cloud.google.com/apis/credentials?project=NOM_DE_VOTRE_PROJET Les instances Compute Engine doivent être exécutées en tant que comptes de service pour avoir accès à d'autres ressources de la plate-forme Cloud. Toute personne ayant accès à une clé privée valide pour un compte de service pourra accéder aux ressources par le biais du compte de service. Étant donné que les instances dépendent de leurs comptes de service pour accéder aux ressources de la plate-forme Cloud, évitez de supprimer les comptes de service tant qu'ils sont encore utilisés par les instances en cours d'exécution. Si vous supprimez les comptes de service, les instances peuvent commencer à échouer. Les utilisateurs qui sont des utilisateurs de compte de service pour un compte de service peuvent accéder indirectement à toutes les ressources auxquelles le compte de service a accès Vous pouvez créer jusqu'à 100 comptes de service par projet. En plus d'être une identité , un compte de service est une ressource à laquelle des stratégies sont attachées.N'accordez au compte de service que le minimum d'autorisations requis pour atteindre son objectif. Créez des comptes de service pour chaque service avec uniquement les autorisations requises pour ce service. Utilisez le nom d'affichage d'un compte de service pour suivre les comptes de service. Lorsque vous créez un compte de service, renseignez son nom complet avec l'objectif du compte de service. Sauvegardez le fichier json sur votre serveur SAS. C'est ce fichier json, contenant les credentials qui est utilisé pour la connexion, depuis SAS9 ou Viya, au Cloud Google et à Big Query. Ne supprimez pas les comptes de service en cours d'utilisation lors de l'exécution d'instances sur App Engine ou Compute Engine, sauf si vous souhaitez que ces applications perdent l'accès au compte de service.Vérifier que vous disposez du module SAS/ACCESS Interface to Big Query
Les fichiers suivants doivent être présent dans votre répertoire SASFoundation/9.4/sasexe :- sasgbq
- engdgbq
- sasiogbq
- tkebigq.so
Installer le client Google Big Query
Contrairement à d'autres module SAS/ACCESS (Oracle, ODBC...) la bibliothèque cliente Google BigQuery nécessaire à la connexion est fournie avec le module SAS/ACCESS Interface to Big Query. En effet, SAS/ACCESS Interface to Big Query utilise l’API GoLang BiqQuery pour communiquer avec Google BigQuery. Ainsi, aucune installation de logiciel tiers n'est nécessaire.Créer une bibliothèque Big Query dans SAS
Dans cette exemple, nous allons créer une bibliothèque SAS (un libname) pointant sur les BigQuery public datasets, un ensemble de données public est un ensemble de données stocké dans BigQuery et mis à la disposition du public. L'objectif de l'exemple est de lire, dans SAS , les données ci-dessous : L'instruction LIBNAME est alors à la suivante :
1 |
libname test bigquery CRED_PATH="/opt/sas/config/bigquery.json" project="franih" qualifier="bigquery-public-data" schema="austin_crime"; |
Quelques erreurs à la connexion
Si votre fichier json est correct mais les informations d’authentification erronées , vous pouvez obtenir le message d'erreur suivant :ERROR: CLI error trying to establish connection: Error: Get
https://cloudresourcemanager.googleapis.com/v1/projects?alt=json&pageSize=100&prettyPrint=false: oauth2: cannot fetch token:
400 Bad Request
Response: {
"error": "invalid_grant",
"error_description": "Invalid JWT Signature."
}