Passer au contenu principal
Si vous ne souhaitez pas intégrer notre API, nous avons lancé un système de connecteurs qui vous permet d’importer directement des données depuis votre propre base de données.

Prérequis

  • Vous avez besoin d’une base de données Postgres pouvant recevoir le trafic entrant depuis nos adresses IP 15.188.105.163, 15.188.215.105 et 35.181.129.14
  • L’URL de base de données associée (qui devrait ressembler à postgres://username:password@host.com/database)
La bonne pratique consiste à utiliser un réplica en lecture et à créer un utilisateur limité spécifiquement pour nous, qui ne pourra accéder qu’au sous-ensemble nécessaire de la base de données.

Charger vos données

Pour commencer, rendez-vous simplement sur la page des chargeurs de données dans Hyperline. Vous devriez voir un état vide.
Ajoutons votre première connexion en cliquant sur « New connection ». Dans la fenêtre modale :
  • Sélectionnez un fournisseur
  • Donnez un nom dont vous vous souviendrez à votre connexion
  • Saisissez l’URL obtenue dans les prérequis
Lorsque vous cliquez sur valider, nous effectuons une vérification rapide pour nous assurer que votre base de données est accessible en exécutant une requête vide. Vous devriez maintenant voir votre connexion active. Il est temps de créer votre premier chargeur en cliquant sur « New data loader » à droite de l’écran. Cela ouvre une fenêtre modale un peu plus longue, mais ne vous inquiétez pas, c’est vraiment simple.
  • Sélectionnez la connexion que vous venez de créer
  • Définissez un type d’événement pour cette requête. C’est l’identifiant que nous utiliserons plus tard dans le produit pour faire référence aux données de cette requête. Cela pourrait être api_calls ou active_users par exemple
  • Sélectionnez la fréquence de rafraîchissement selon votre cas d’usage ; pour commencer, toutes les heures est largement suffisant

Bien rédiger votre requête SQL

Il est maintenant temps de commencer à rédiger votre requête. Hyperline aura besoin de certaines informations de votre part et attend un format spécifique en sortie de la requête. Nous aurons besoin de 3 champs pour valider la requête :
  • timestamp — La date utilisée pour déterminer si un enregistrement entre dans une période de facturation. Par exemple, si vous facturez mensuellement des appels API, seuls les événements avec un timestamp dans le cycle de facturation actuel sont inclus. Ce champ est moins critique si votre tarification ne repose pas sur un comptage périodique.
  • customerId — L’identifiant Hyperline ou l’identifiant externe du client. Ce champ permet d’associer chaque enregistrement au client correspondant.
  • id — Un identifiant unique pour l’enregistrement (peut être un identifiant de votre système). Hyperline utilise ce champ pour dédupliquer et mettre à jour les enregistrements, alors assurez-vous qu’il représente bien chaque enregistrement de manière unique.
Lors de l’import des enregistrements, Hyperline tentera de faire correspondre un client existant ou d’en créer un nouveau avec un statut automatically_created, qui ne sera pas affiché par défaut dans votre liste de clients pour éviter le spam (mais vous pouvez y accéder via la table des pending customers). Vous pouvez également renvoyer une propriété customerName afin que nous ayons un nom à attribuer au client lors de sa création, ce qui facilitera son identification ultérieure. Pour résumer, la requête minimale acceptable ressemble à ceci :
-- Make sure to use quotes in postgres to make the query case sensitive
SELECT id, company_id as "customerId", created_at as timestamp from api_calls
Ou pour importer le nom du client :
-- Adding customer name
SELECT id, company_id as "customerId", companies.name as "customerName", created_at as timestamp FROM api_calls LEFT JOIN companies on companies.id=api_calls.company_id
C’est le minimum pour qu’une requête soit acceptée et chargée dans Hyperline. Vous pouvez ensuite ajouter d’autres champs à votre requête, mais veillez à n’inclure que ce qui est nécessaire pour limiter le partage de données au strict minimum. Cliquez ensuite sur prévisualiser la requête. Nous validerons la présence des champs requis et afficherons un aperçu de 5 enregistrements afin que vous puissiez vous assurer que tout est en ordre.
Enregistrez le chargeur de données et rendez-vous sur votre page d’événements. Au bout de quelques secondes, vous devriez voir un tableau avec vos événements nouvellement ingérés. Nous limitons pour l’instant les capacités d’exploration mais ajouterons d’autres fonctionnalités plus tard. Considérez cela comme un outil de débogage.

Mise à jour des enregistrements

Hyperline met automatiquement à jour les enregistrements existants. Nous utilisons une combinaison de l’id fourni et du customerId, et nous conservons toujours la dernière version. Nous ne mettons pas à jour les noms de clients dans Hyperline même si le nom a changé ; vous devrez le modifier dans l’interface.

Suppression d’enregistrements

Hyperline ne supprime pas automatiquement les enregistrements pour éviter tout problème. Nous vous recommandons d’ajouter un champ deletedAt dans la requête, que vous renseignerez lorsque l’enregistrement est supprimé. Vous pourrez ensuite filtrer ces enregistrements dans notre moteur de tarification.

Charger de grandes tables

Hyperline traite les requêtes par lots. Vous devriez donc être tranquille tant que votre requête reste raisonnable (nous pouvons traiter jusqu’à 120 000 lignes par minute). Si votre table est plus grande, envisagez d’importer uniquement les enregistrements mis à jour après le dernier rafraîchissement, ou de les importer moins souvent. C’est en fait assez simple.
-- Adapt this to your refresh time
SELECT xxx FROM table WHERE (updated_at + interval '60 minutes') > NOW()