Intégration AWS - Récupérer les données des tables Tulip
  • 27 May 2024
  • 2 Minutes à lire
  • Contributeurs

Intégration AWS - Récupérer les données des tables Tulip


Résumé de l’article

Rationaliser l'extraction des données de Tulip vers AWS pour élargir les possibilités d'analyse et d'intégration.

Objectif

Ce guide explique étape par étape comment récupérer les données de Tulip Tables sur AWS via une fonction Lambda.

La fonction Lambda peut être déclenchée via une variété de ressources telles que les minuteries Event Bridge ou une API Gateway.

Un exemple d'architecture est présenté ci-dessous :

image

L'exécution d'opérations AWS à l'intérieur d'une fonction Lambda peut être plus facile, car avec API Gateway et les fonctions Lambda, vous n'avez pas besoin d'authentifier les bases de données avec un nom d'utilisateur et un mot de passe du côté de Tulip ; vous pouvez vous appuyer sur les méthodes d'authentification IAM à l'intérieur d'AWS. Cela simplifie également l'utilisation d'autres services AWS tels que Redshift, DynamoDB, etc.

Configuration

Cet exemple d'intégration nécessite les éléments suivants :

  • Utilisation de l'API Tulip Tables (Obtenir la clé API et le secret dans les paramètres du compte)
  • Tulip Table (Obtenir l'ID unique de la table)

Étapes de haut niveau : 1. Créer une fonction AWS Lambda avec le déclencheur approprié (API Gateway, Event Bridge Timer, etc.) 2. Récupérez les données de la table Tulip avec l'exemple ci-dessous ``python import json import pandas as pd import numpy as np import requests

# NOTE : la couche pandas d'AWS devra être ajoutée à la fonction Lambda.

# être ajoutée à la fonction Lambda

def lambda_handler(event, context) : auth_header = OBTAIN FROM API AUTH header = {'Authorization' : auth_header} base_url = 'https://[INSTANCE].tulip.co/api/v3' offset = 0 function = f'/tables/[TABLE_ID/records ?limit=100&offset={offset}&includeTotalCount=false&filterAggregator=all' r = requests.get(base_url+function, headers=header) df = pd.DataFrame(r.json()) length = len(r.json()) while length > 0 : offset += 100 function = f'/tables/[TABLE_ID/records ?limit=100&offset{offset}&includeTotalCount=false&filterAggregator=all' r = requests.get(base_url+function, headers=cdm_header) length = len(r.json()) df_append = pd.DataFrame(r.json()) df = pd.concat([df, df_append], axis=0) df.shape # ceci ajoute 100 enregistrements à un dataframe et peut ensuite être utilisé pour S3, Firehose, etc. # utiliser la variable data pour écrire vers S3, Firehose,

# les bases de données, et plus encore ```

  1. Le déclencheur peut s'exécuter sur une minuterie ou être déclenché via une URL
  2. Notez la couche Pandas requise dans l'image ci-dessousimage.png
  3. Enfin, ajoutez toutes les intégrations nécessaires. Vous pouvez écrire les données dans une base de données, S3, ou un service de notification à partir de fonctions lambda.

Cas d'utilisation et prochaines étapes

Une fois que vous avez finalisé l'intégration avec lambda, vous pouvez facilement analyser les données avec un sagemaker notebook, QuickSight, ou une variété d'autres outils.

1. Prédiction desdéfauts - Identifier les défauts de production avant qu'ils ne se produisent et augmenter la qualité dès la première fois - Identifier les principaux facteurs de production de la qualité afin de mettre en œuvre des améliorations

2. Optimisation du coût de la qualité- Identifier les possibilités d'optimisation de la conception des produits sans incidence sur la satisfaction des clients.

3. Optimisation de l'énergie de production- Identifier les leviers de production pour optimiser la consommation d'énergie

4. Prévision et optimisation des livraisons et de la planification- Optimiser le calendrier de production en fonction de la demande des clients et du calendrier des commandes en temps réel.

5. Benchmarking global des machines / lignes- Benchmarker des machines ou équipements similaires avec normalisation.

6. Gestion de la performance numérique globale / régionale- Consolidation des données pour créer des tableaux de bord en temps réel.


Cet article vous a-t-il été utile ?