Cet endpoint a été mis à jour pour inclure les métadonnées d’édition de Publications. Pour en savoir plus sur ces métadonnées, consultez la page de notions de base “Modifier des Publications”.
Flux Decahose
- URL développées et enrichies : - développe entièrement les URL raccourcies et fournit des métadonnées supplémentaires (titre et description de la page)
- Partitionnement du flux - 2 partitions, chacune contenant 50 % du volume du flux Decahose
- Fiabilité améliorée - diversité géographique des systèmes backend
ENTERPRISE
Diffusion en continu des mentions J’aime
- Les mentions J’aime sont fournies via un flux indépendant et distinct
- Historiquement, les mentions J’aime étaient appelées « Favorites ». La charge utile au format natif enrichi conserve cette nomenclature
- Les flux n’incluent que les mentions J’aime publiques
- « Publique » signifie que l’utilisateur qui aime, le créateur de la Publication et la Publication sont tous publics sur la plateforme
- Les mentions J’aime sont très similaires aux Retweets et représentent un signal public d’engagement
- Les éléments de la charge utile incluent :
- L’objet Publication d’origine
- L’objet acteur qui a créé la Publication d’origine
- L’objet acteur qui a effectué l’action de mention J’aime
- Seul le contenu original peut recevoir une mention J’aime
- Les Retweets ne peuvent pas recevoir de mention J’aime. Une mention J’aime sur un Retweet est appliquée à la Publication d’origine
- Les Tweets cités peuvent recevoir une mention J’aime
- Les activités de mention J’aime incluent les enrichissements Gnip applicables (lorsqu’ils sont achetés/appliqués)
- Produits / fonctionnalités pris en charge
- Les flux de mentions J’aime prennent en charge la fonctionnalité Backfill (lorsqu’elle est achetée/appliquée)
- Il n’existe aucune prise en charge de Replay pour les flux de mentions J’aime
- Il n’existe aucune prise en charge Search ou Historical pour les mentions J’aime
- Il n’est pas prévu dans l’immédiat d’ajouter la prise en charge des mentions J’aime à PowerTrack
- Pour l’échantillon de 10 % de Publications diffusées dans Decahose, le flux inclut 100 % des mentions J’aime publiques applicables
- Partitions : 2
- Structure d’URL
Guides
Récupération et redondance
- Pour prendre en charge plusieurs environnements, nous pouvons déployer des flux supplémentaires pour votre compte. Ces flux sont indépendants les uns des autres et possèdent un
stream_labeldifférent afin de les distinguer. - Pour aider à maintenir une connexion, chaque flux Decahose prend en charge les connexions redondantes. L’architecture la plus courante consiste à ce qu’un flux ait deux connexions, et côté client il y a deux consommateurs indépendants – idéalement sur des réseaux différents. Avec cette conception, il peut y avoir de la redondance au niveau des réseaux côté client, des serveurs et des chemins vers les datastores. Notez qu’une copie complète des données est transmise sur chaque connexion et que le côté client doit être tolérant aux doublons et les gérer.
- Un « heartbeat » sera envoyé toutes les 10 secondes ; toutefois, avec le flux Decahose, le volume de données est suffisamment élevé pour qu’une durée même courte (par exemple, quelques secondes) sans Publications puisse indiquer un problème de connexion. Par conséquent, à la fois un « silence de données » et l’absence de heartbeat peuvent être utilisés pour détecter une déconnexion.
Flux supplémentaires
stream_label, et ce label, avec votre nom de compte, fait partie de l’URL de ce flux. Voir l’exemple ci‑dessous :
https://gnip-stream.x.com/stream/sample10/accounts/:account_name/publishers/twitter/:stream_label.json
La convention la plus courante consiste à disposer d’un flux en temps réel dédié à votre système de production, et d’un flux supplémentaire disponible pour le développement et les tests. Disposer d’un flux de test/développement permet aux clients Decahose d’avoir un flux pour tester les mises à jour de leurs clients consommateurs. Bien que n’importe quel label (unique) puisse être attribué à un flux, une convention consiste à utiliser « prod » pour le flux de production, et « dev » ou « sandbox » pour un flux de développement supplémentaire.
Le nombre de flux, et leurs labels uniques, est configurable par votre responsable de compte.
Connexions redondantes
Une connexion redondante vous permet simplement d’établir plus d’une connexion simultanée au flux de données. Cela fournit de la redondance en vous permettant de vous connecter au même flux avec deux consommateurs distincts, recevant les mêmes données via les deux connexions. Ainsi, votre app dispose d’un basculement à chaud pour diverses situations, par exemple lorsqu’un flux est déconnecté ou lorsque le serveur principal de votre app tombe en panne.
Le nombre de connexions autorisées pour un flux donné est configurable par votre responsable de compte. Pour utiliser un flux redondant, connectez‑vous simplement à la même URL que celle utilisée pour votre connexion principale. Les données de votre flux seront envoyées via les deux connexions, les deux connexions de flux étant représentées sur le tableau de bord du flux.
Notez qu’aux fins de facturation, nous dédupliquons les décomptes d’activités que vous recevez via plusieurs connexions de sorte que vous ne soyez facturé qu’une seule fois pour chaque activité unique. Étant donné que Decahose a deux partitions, voici ci‑dessous un exemple du fonctionnement du comptage des connexions :
Connect to decahose partition=1
Connect to decahose partition=1
Connect to decahose partition=2
La situation ci‑dessus donne un total de trois connexions – deux connexions à partition=1 et une connexion à partition=2. Normalement, vous voudriez le même nombre de connexions pour chaque partition, donc cet exemple illustre une situation où la connexion redondante à partition=2 a été interrompue et où vous souhaiterez enquêter davantage.
Récupération
Présentation
Utilisation de Recovery
Disponibilité des données
start_time et end_time. Une fois connecté, Recovery va à nouveau diffuser la période indiquée, puis se déconnectera.
Vous pourrez effectuer 2 requêtes simultanées à Recovery au même moment, c’est‑à‑dire « deux jobs de recovery ». Recovery fonctionne techniquement de la même manière que le backfill, à ceci près qu’une heure de début et une heure de fin sont définies. Une période de recovery correspond à une seule plage temporelle.
Backfill
- Vous avez la possibilité d’utiliser systématiquement « backfillMinutes=5 » lors de la connexion, puis de gérer toutes les données en double qui sont fournies.
- Si vous êtes déconnecté pendant plus de cinq minutes, vous pouvez récupérer les données à l’aide de Recovery.
- Déterminer la durée de la période de déconnexion.
- 5 minutes ou moins ?
- Si vous avez activé Backfill pour le flux, préparez une requête de connexion avec le paramètre « backfillMinutes » approprié.
- Plus de 5 minutes ?
- Si vous disposez d’un flux Recovery, effectuez une requête Recovery pour la période de temps déconnectée (idéalement avec votre jeu de règles temps réel actuel, en utilisant l’API Rules si nécessaire).
- 5 minutes ou moins ?
- Demander une nouvelle connexion.
-
Implémenter le backfill
Le backfill vous permet de vous reconnecter à un point antérieur à la déconnexion d’une connexion de flux et couvre les déconnexions jusqu’à 5 minutes. Il est implémenté en incluant un paramètre dans la requête de connexion. -
Consommer un flux redondant depuis un autre emplacement
Si le flux redondant peut être diffusé dans le même environnement temps réel, avec déduplication des données, vous éliminerez le besoin de récupération, sauf si le flux normal ET le flux redondant subissent simultanément un temps d’arrêt ou des déconnexions. Si le flux redondant ne peut pas être diffusé en direct dans l’environnement de production, il peut être écrit dans un stockage de données « d’urgence » distinct. Ensuite, en cas de déconnexions ou de temps d’arrêt sur la connexion de flux principale, votre système disposera de données pour compléter votre base de données principale pour la période pendant laquelle des données manquent. -
Implémenter Recovery
Lorsque des déconnexions ou des temps d’arrêt affectent à la fois le flux principal et le flux redondant, utilisez Decahose Recovery pour récupérer toutes les données manquées. L’API fournit une fenêtre glissante couvrant 5 jours d’archive, et il est préférable de l’utiliser en demandant au maximum une heure de cette fenêtre à la fois, puis en la diffusant. Cela se fait en parallèle du flux temps réel. Notez que nous n’avons pas de solutions pour récupérer les données Decahose au-delà de la fenêtre de 5 jours fournie par Recovery, il est donc important pour vous d’utiliser un flux redondant afin de disposer d’une copie complète des données de votre côté en cas de temps d’arrêt significatif de votre côté.
Voici quelques façons possibles de détecter des données manquantes alors qu’aucune déconnexion ou temps d’arrêt ne s’est produit…
-
Compter les Publications entrantes
Votre système doit compter le nombre brut de Publications que vous recevez tout au début de votre application d’ingestion, puis fournir un moyen de comparer ces nombres au nombre de Publications qui atteint votre stockage de données final. Toute différence peut être surveillée et alerter votre équipe sur les problèmes provoquant la perte de données après leur réception. -
Analyser les volumes stockés anormaux
Vous pouvez également analyser les volumes de données stockées dans votre base de données finale pour rechercher des baisses anormales. Cela peut également indiquer des problèmes, même s’il y aura probablement des circonstances dans lesquelles des baisses de volume sont normales (par exemple si la plateforme X est indisponible et que les personnes ne peuvent pas créer de Publications pendant un certain temps).
Référence de l’API
Flux Decahose
Méthodes
| Méthode | Description |
|---|---|
| GET /{stream-type}/:stream | Connectez-vous au flux de données |
Authorization pour chaque requête. Assurez‑vous donc que votre client ajoute l’en-tête HTTP Authorization: Basic (avec les identifiants encodés sur HTTPS) à toutes les requêtes API.
GET :stream
Établit une connexion persistante au flux Firehose, via lequel les données en temps réel sont transmises.Spécifications de la requête
| Méthode de requête | HTTP GET |
| Type de connexion | Keep-Alive Cela doit être spécifié dans l’en-tête de la requête. |
| URL | Indiquée sur la page d’aide de l’API du flux de votre tableau de bord, en utilisant la structure suivante : Decahose : https://gnip-stream.x.com/stream/sample10/accounts/:account_name/publishers/twitter/:stream_label.json?partition=1 |
| Partition (obligatoire) | partition=\{#} - Le partitionnement est désormais requis pour consommer l’intégralité du flux. Vous devez vous connecter au flux avec le paramètre de partition spécifié. Vous trouverez ci-dessous le nombre de partitions par flux :* Decahose : 2 partitions |
| Compression | Gzip. Pour vous connecter au flux en utilisant la compression Gzip, envoyez simplement un en-tête Accept-Encoding dans la requête de connexion. L’en-tête doit être le suivant : Accept-Encoding: gzip |
| Encodage des caractères | UTF-8 |
| Format de réponse | JSON. L’en-tête de votre requête doit spécifier le format JSON pour la réponse. |
| Limite de débit | 10 requêtes par période de 60 secondes. |
| Paramètre Backfill | Si vous avez acheté un flux avec Backfill activé, vous devrez ajouter le paramètre “backfillMinutes” à la requête GET pour l’activer. |
| Délai d’attente de lecture | Configurez un délai d’attente de lecture sur votre client et assurez-vous qu’il est défini sur une valeur supérieure à 30 secondes. |
| Prise en charge des modifications de Tweet | Tous les objets Tweet incluront des métadonnées de modification de Tweet décrivant l’historique des modifications du Tweet. Consultez la page de notions fondamentales “Edit Tweets” pour plus de détails. |
Réponses
| Statut | Texte | Description |
|---|---|---|
| 200 | Succès | La connexion a été ouverte avec succès et les nouvelles activités seront envoyées au fur et à mesure de leur arrivée. |
| 401 | Non autorisé | L’authentification HTTP a échoué en raison d’identifiants invalides. Connectez-vous à console.gnip.com avec vos identifiants pour vous assurer que vous les utilisez correctement dans votre requête. |
| 406 | Non acceptable | En général, cela se produit lorsque votre client n’inclut pas correctement les en-têtes pour accepter l’encodage gzip du flux, mais cela peut également se produire dans d’autres circonstances. Contiendra un message JSON similaire à « Cette connexion nécessite la compression. Pour activer la compression, envoyez un en-tête “Accept-Encoding: gzip” dans votre requête et soyez prêt à décompresser le flux au fur et à mesure de sa lecture côté client. » |
| 429 | Limitation de débit | Votre application a dépassé la limite de requêtes de connexion. |
| 503 | Service indisponible | Problème de serveur Twitter. Reconnectez-vous en utilisant une stratégie de reconnexion avec backoff exponentiel. Si aucun avis concernant ce problème n’a été publié sur la X API Status Page, contactez le support ou le service d’urgence si vous ne parvenez pas à vous connecter après 10 minutes. |