Créez un magasin externe pour associer SLS à une base de données PostgreSQL.
Prérequis
Les données sont collectées dans SLS. Consultez la rubrique Collecte de données.
Vous avez installé la CLI SLS et configuré le endpoint du service et la paire AccessKey.
Les données sont stockées dans une instance Alibaba Cloud RDS for PostgreSQL, ADB for PostgreSQL ou Hologres.
-
La base de données PostgreSQL se trouve dans un VPC. L'instance RDS, ADB ou Hologres doit être située dans la même région que votre projet SLS.
ImportantLes endpoints Internet ne sont pas pris en charge pour les connexions PostgreSQL.
Contexte
Les magasins externes SLS vous permettent d'associer SLS à une instance RDS for PostgreSQL, ADB for PostgreSQL ou Hologres. Vous pouvez écrire les résultats de vos requêtes et analyses dans une base de données PostgreSQL pour un traitement ultérieur.
Procédure
1. Configurer une liste d'autorisation
Base de données RDS for PostgreSQL
Ajoutez les blocs CIDR suivants à la liste d'autorisation : 100.104.0.0/16, 11.194.0.0/16 et 11.201.0.0/16. Consultez la rubrique Configurer une liste d'autorisation.
Alibaba Cloud Hologres
Ajoutez les blocs CIDR suivants à la liste d'autorisation : 100.104.0.0/16, 11.194.0.0/16 et 11.201.0.0/16. Consultez la rubrique Liste d'autorisation IP.
Base de données ADB for PostgreSQL
Ajoutez les blocs CIDR suivants à la liste d'autorisation : 100.104.0.0/16, 11.194.0.0/16 et 11.201.0.0/16. Consultez la rubrique Configurer une liste d'autorisation.
2. Créer un ExternalStore
-
Connectez-vous au serveur CLI. Exécutez
touchpour créer /home/shell/config.json. Ajoutez le contenu suivant au fichier config.json et remplacez les valeurs des paramètresregion,vpc-id,host,port,username,password,dbettablepar les vôtres.Description des paramètres
Exemple
{ "externalStoreName":"sls_join_meta_store", "storeType":"postgresql", "parameter":{ "region":"cn-qingdao", "vpc-id":"vpc-m5eq4irc1pucp*******", "host":"localhost", "port":"3306", "username":"user", "password":"****", "db":"scmc", "table":"join_meta" } }externalStoreNameNom de l'ExternalStore. Doit être en minuscules.
storeTypeType de source de données. Définissez-le sur postgresql.
regionRégion, par exemple cn-wulanchabu ou cn-hangzhou.
ImportantL'instance RDS, l'instance Hologres ou l'instance ADB doit se trouver dans la même région que le projet SLS.
vpc-idID du VPC de la base de données. Varie selon le type de base de données :
-
RDS for PostgreSQL : définissez vpc-id sur l'ID du VPC de l'instance.
-
ADB for PostgreSQL : définissez vpc-id sur l'ID du VPC de l'instance.
-
Hologres : définissez vpc-id sur l'ID du VPC de l'instance.
hostEndpoint interne de la base de données.
portPort de la base de données.
usernameNom d'utilisateur de la base de données.
passwordMot de passe de la base de données.
dbNom de la base de données.
tableNom de la table de la base de données. Formats pris en charge :
-
nom_table, par exemple test.
-
nom_schema.nom_table, par exemple public.test.
-
-
Exécutez la commande suivante pour créer un ExternalStore. Remplacez project_name par le nom de votre projet SLS. Cet exemple utilise
log-rds-demo.aliyunlog log create_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json" -
Si la commande aboutit, aucune réponse n'est renvoyée. Exécutez
aliyunlog log get_external_store --project_name="log-rds-demo" --store_name="sls_join_meta_store" --format-output=jsonpour vérifier. Résultat attendu :{ "externalStoreName": "sls_join_meta_store", "parameter": { "db": "postgres", "host": "rm-bp1******rm76.pg.rds.aliyuncs.com", "port": "5432", "region": "cn-wulanchabu", "table": "test", "timezone": "", "username": "user", "vpc-id": "vpc-m5eq4irc1pucp*******" }, "storeType": "postgresql" }
3. Interroger les données PostgreSQL
Dans la console SLS, ouvrez le projet log-rds-demo, sélectionnez n'importe quel Logstore et exécutez * | select * from sls_join_meta_store pour interroger la source de données PostgreSQL.
La requête renvoie deux lignes de la table de dimension : ID 123 (nom : Bob) et ID 124 (nom : Lucy).
Opérations associées
-
Mettez à jour le magasin externe PostgreSQL.
aliyunlog log update_external_store --project_name="log-rds-demo" --config="file:///home/shell/config.json" -
Supprimez le magasin externe PostgreSQL.
aliyunlog log delete_external_store --project_name="log-rds-demo" --store_name=sls_join_meta_store