Coupler.io Blog

Connecter Stripe à BigQuery de manière automatisée et manuelle

How to connect Stripe to BigQuery

Stripe offre des capacités analytiques limitées, il n’est donc pas étonnant que de nombreuses personnes choisissent d’exporter leurs données financières en dehors de la plateforme. BigQuery est une destination courante pour ces données, à la fois pour ceux qui recherchent des fonctionnalités analytiques plus étendues et pour ceux qui souhaitent simplement sauvegarder leurs données financières. 

Comme vous pouvez vous en douter, il y a plus d’une façon de connecter Stripe à BigQuery. En fait, il y a au moins une demi-douzaine de méthodes que vous pouvez utiliser, en fonction de vos compétences, de votre environnement et de vos besoins. J’ai choisi trois d’entre elles qui me semblaient les plus viables – elles ne nécessitent pas une installation extensive et la plupart peuvent être personnalisées pour s’adapter à votre projet.

Méthodes de chargement des données de Stripe vers BigQuery

Dans cet article, je vais couvrir les façons suivantes de connecter Stripe à BigQuery :

Je couvrirai chacune de ces méthodes dans les chapitres suivants.

Intégration automatisée de Stripe à BigQuery

Si vous prévoyez de récupérer à plusieurs reprises des données de Stripe vers BigQuery, vous devriez envisager d’automatiser le processus. Avec Coupler.io, vous pouvez établir la connexion en quelques minutes et charger les données souhaitées dans BigQuery sans aucun code. C’est aussi simple que cela.

C’est tout ! Si vous souhaitez exporter des données de Stripe vers d’autres destinations, consultez notre récent guide sur la connexion de Stripe à Power BI.

Exportation manuelle de Stripe vers BigQuery

Stripe offre une possibilité de base d’exporter des entités de données particulières sous forme de fichiers .csv. Vous pouvez ensuite télécharger un tel fichier vers Google Cloud Storage et BigQuery. Cette approche fonctionnera parfaitement si vous avez besoin d’analyser un type de données spécifique, par exemple la liste des factures d’une période donnée. L’inconvénient de cette méthode est qu’elle demande beaucoup d’efforts à chaque fois que vous exportez. De plus, vous ne pouvez pas exporter différents types de données à la fois ni personnaliser les données exportées (par exemple, récupérer uniquement les factures d’une valeur de 1 000 $ ou plus).
Suivez ces étapes pour connecter manuellement Stripe à BigQuery :

Si vous préférez, vous pouvez d’abord charger le fichier dans Google Cloud Storage. Ensuite, chargez-le dans BigQuery à l’aide de la syntaxe suivante :

LOAD DATA OVERWRITE {{votre jeu de données}}.{{votre tableau}}
FROM FILES (
 Format = 'CSV',
 Uris = ['gs://bucket/path/file.csv']) ;

Stripe Sigma et webhooks pour des exportations automatisées vers BigQuery

Stripe a son propre produit appelé Stripe Sigma qui est destiné à vous aider à accéder à vos données. Vous pouvez utiliser SQL pour extraire le type de données dont vous avez besoin et créer des rapports ou les pousser plus loin dans des outils comme BigQuery avec Python, par exemple. Sigma est un add-on payant, consultez le calculateur de prix pratique pour en savoir plus sur les coûts estimés que vous auriez à inclure.
Pour charger des données de Stripe vers BigQuery à l’aide de Sigma, vous devez procéder comme suit :

C’est tout ce qu’il y a à savoir. Passons maintenant aux instructions étape par étape :

SELECT
 id,
 date,
 total,
 due_date,
 paid as is_paid
FROM
 invoices

Lorsqu’une requête programmée est exécutée, Stripe envoie l’événement sigma.scheduled_query_run.created. En configurant un webhook pour écouter cet événement, vous serez en mesure de récupérer sa charge utile qui comprend également un chemin vers un fichier contenant les résultats de la requête.

Voici à quoi ressemble une charge utile de l’événement sigma.scheduled_query_run.created :

{
 "object" : "event",
 "pending_webhooks" : 2,
 "créeated" : 1502793192,
 "type" : "sigma.scheduled_query_run.created",
 "livemode" : true,
 "request" : null,
 "data" : {
   "object" : {
     "id" : "sqr_Jxhi5BvNIytZtVT0XQG4",
     "object" : "scheduled_query_run",
     "status" : "completed",
     "data_load_time" : 1504356600,
     "file" : {
       "id" : "{{ ID DE FICHIER }}",
       "object" : "file",
       "url" : "https://files.stripe.com/v1/files/{{ FILE ID }}/contents",
       "created" : 1507842188,
       "purpose" : "sigma_scheduled_query",
       "size" : 55035,
       "type" : "csv"
     },
     "title" : "Invoices load",
     "sql" : "SELECT id, date, total, due_date, paid as is_paid FROM invoices",
     "created" : 1524754194,
     "result_available_until" : 1505393633,
     "error" : null,
     "livemode" : true
   }
 }
}

curl https://files.stripe.com/v1/files/{{ FILE ID }}/contents -u sk_live_123456789:

from flask import Flask, request
import stripe
from google.cloud import bigquery
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file(
'path/to/file.json') # chemin vers votre compte de service BQ fee
app = Flask(__name__)
stripe.api_key = 'YOUR_STRIPE_SECRET_KEY'   # Remplacer par votre véritable clé secrète Stripe
bigquery_client = bigquery.Client(project='YOUR_PROJECT_ID', credentials=credentials)   # Remplacez par votre ID de projet BigQuery réel
@app.route('/webhook', methods=['POST'])
def webhook() :
   event = stripe.Event.construct_from(request.json, stripe.api_key)
  
   if event.type == 'sigma.scheduled_query_run.created' :
       file_url = event.data.object.file.url
      
       # Chargement des données du fichier dans BigQuery
       job_config = bigquery.LoadJobConfig(
           source_format=bigquery.SourceFormat.CSV,
 skip_leading_rows=1,
 autodetect=True,
       )
      
       load_job = bigquery_client.load_table_from_uri(
           file_url,
           'YOUR_DATASET.YOUR_TABLE',  # Remplacer par votre jeu de données BigQuery réel et le nom de votre tableau
           job_config=job_config,
       )
      
       load_job.result()   # Attendez que cela soit terminé
  
   return 'Your Stripe data is now in BigQuery!', 200
if __name__ ==  '__main__' :
   app.run(port=5000)

Veillez à insérer votre clé API et les détails de votre QB aux endroits correspondants dans le code. Ajoutez également un chemin vers le fichier JSON que vous avez enregistré il y a quelques instants. Par exemple, si vous avez sauvegardé le fichier de clé JSON en tant que my_key.json dans le même répertoire que votre script Python, vous pouvez remplacer 'path/to/service-account-key.json' par 'my_key.json'. Pour automatiser ce script Stripe to BigQuery, vous pouvez mettre en place, par exemple, un job cron.

Note : Vous pouvez charger des données de Stripe vers un tableau BigQuery même sans Stripe Sigma. Vous pouvez toujours vous appuyer sur les webhooks, mais plutôt que d’écouter l’événement sigma.scheduled_query_run.created et de récupérer les résultats des requêtes, vous écouterez des événements particuliers, tels que invoice_created. Ensuite, il suffit de charger leur payload dans BigQuery avec un script similaire à celui que j’ai mis ci-dessus. Cette méthode n’est pas aussi pratique que la précédente, mais elle est certainement plus rentable.

Comment connecter Stripe à BigQuery – résumé

Il existe certainement d’autres façons de connecter Stripe à BigQuery, mais les trois que j’ai mentionnées devraient faire l’affaire pour pratiquement tout le monde. Chaque approche est différente, alors résumons rapidement afin que vous puissiez choisir celle qui vous convient le mieux.

D’ailleurs, si vous avez besoin d’une solution personnalisée et qu’aucune de ces méthodes ne vous convient, il y a de fortes chances que nous puissions vous aider. Coupler.io propose des services de conseil en matière d’analyse de données, grâce auxquels nous aidons les entreprises à donner un sens à leurs données. Cela peut impliquer, par exemple, de connecter les données Stripe aux informations provenant des autres applications que vous utilisez, de mettre en place des automatisations, des alertes de données ou des tableaux de bord interactifs dans les outils de votre choix. 

Si vous souhaitez bénéficier de ces avantages, n’hésitez pas à prendre rendez-vous pour une consultation gratuite afin de discuter de votre projet.

Pour plus d’informations sur ce sujet, consultez notre article sur la façon de connecter Stripe à Looker Studio.

Automatisez l’exportation de données avec Coupler.io

Commencez gratuitement
Quitter la version mobile