Créer une réplique en quasi temps réel et en lecture seule d'une base de données Azure SQL dans Fabric sans impacter la source.
→Utiliser Fabric Mirroring pour Azure SQL Database.
Pourquoi: Mirroring offre une réplication continue et à faible latence des données dans OneLake sous forme de tables Delta, idéale pour l'analyse en temps réel sans développement ETL.
Partager un ensemble de données avec un autre espace de travail ou accéder à des données externes sans créer de copie.
→Créer un Shortcut pointant vers la table lakehouse source ou l'emplacement des données externes.
Pourquoi: Les Shortcuts agissent comme des liens symboliques, offrant une vue unifiée des données dans OneLake tout en évitant la duplication des données, les coûts de stockage et les problèmes de synchronisation.
Combiner des données de streaming à haute vélocité avec des données batch historiques pour une analyse unifiée.
→Utiliser Eventstream pour l'ingestion en temps réel et un Lakehouse avec des tables Delta Lake pour le stockage unifié.
Pourquoi: Eventstream gère le chemin de streaming, tandis que les propriétés ACID de Delta Lake lui permettent de servir de cible pour les ajouts en streaming et les mises à jour batch.
Permettre à la fois l'analyse basée sur T-SQL et la science des données basée sur Python sur les mêmes données lakehouse.
→Utiliser le point de terminaison d'analyse SQL généré automatiquement pour le Lakehouse.
Pourquoi: Fabric fournit un accès double moteur aux mêmes tables Delta : un point de terminaison SQL pour les requêtes T-SQL et le moteur Spark pour les notebooks, sans duplication de données.
Ingérer des données depuis une source de données sur site (par exemple, Oracle, SQL Server) dans Fabric.
→Installer et configurer une passerelle de données sur site.
Pourquoi: La passerelle agit comme un pont sécurisé, transmettant les données entre le réseau sur site et le service cloud Fabric sans exposer la source à Internet.
Traiter automatiquement les nouveaux fichiers dès leur arrivée dans Azure Blob Storage.
→Utiliser un déclencheur d'événement de stockage pour le pipeline de données, configuré pour se déclencher sur les événements de création de blob.
Pourquoi: Les déclencheurs basés sur des événements offrent une latence plus faible et sont plus efficaces que l'interrogation planifiée, qui peut manquer des données ou s'exécuter inutilement.
Implémenter une logique de type 2 de dimension à évolution lente (SCD2) ou traiter des flux de capture de données modifiées (CDC).
→Utiliser l'opération Delta Lake MERGE avec les clauses `WHEN MATCHED` et `WHEN NOT MATCHED`.
Pourquoi: MERGE offre des capacités upsert (mise à jour/insertion/suppression) atomiques, qui est l'opération fondamentale pour maintenir les enregistrements historiques dans les modèles SCD2.
Transformer une colonne de DataFrame contenant des tableaux d'objets imbriqués en lignes séparées.
→Appliquer la fonction `explode()` à la colonne de tableau dans un notebook PySpark.
Pourquoi: `explode()` est la fonction Spark standard pour désimbriquer les tableaux, créant une nouvelle ligne pour chaque élément du tableau.
Gérer les données arrivant en retard dans une agrégation de streaming avec état (par exemple, des comptages fenêtrés).
→Configurer un watermark sur la colonne de temps de l'événement dans la requête Spark Structured Streaming.
Pourquoi: Le watermarking définit un seuil de temps pendant lequel le moteur attendra les données en retard, empêchant l'état de croître indéfiniment tout en garantissant la correction.
Effectuer un chargement de données incrémental depuis un système source qui a une colonne d'horodatage mais pas de CDC.
→Implémenter un modèle de high-watermark. Stocker l'horodatage maximal de la dernière exécution et l'utiliser pour filtrer la source lors de la prochaine exécution.
Pourquoi: Ceci est un modèle efficace et courant pour extraire uniquement les enregistrements nouveaux ou mis à jour sans la surcharge des balayages de table complets ou l'exigence d'un CDC formel.
Une activité de pipeline échoue par intermittence en raison de problèmes réseau transitoires ou de la charge du système source.
→Configurer la politique de nouvelle tentative de l'activité avec un nombre spécifié et un intervalle de backoff exponentiel.
Pourquoi: Intègre la résilience dans le pipeline en relançant automatiquement les opérations échouées, résolvant souvent les problèmes transitoires sans intervention manuelle.
Ingérer et interroger des données de télémétrie ou de journalisation à haut volume et faible latence pour une analyse exploratoire en temps réel.
→Ingérer les données dans un Eventhouse et les interroger en utilisant Kusto Query Language (KQL).
Pourquoi: Eventhouse (basé sur Azure Data Explorer) et KQL sont conçus spécifiquement pour l'analyse de séries chronologiques et de journaux haute performance.
Créer un pipeline unique et réutilisable pour charger des dizaines de tables qui partagent la même logique de transformation.
→Utiliser une approche basée sur les métadonnées. Stocker les informations source/destination dans une table de contrôle et utiliser une activité ForEach pour itérer et passer des paramètres à un pipeline enfant générique.
Pourquoi: Ce modèle est hautement scalable et maintenable, évitant la duplication et la surcharge de gestion de la création de pipelines séparés pour chaque table.
Optimiser les performances d'un Dataflow Gen2 qui tire ses données d'une base de données relationnelle comme SQL Server.
→Concevoir des transformations qui peuvent être pliées (folded). Vérifier l'état du query folding dans l'éditeur Power Query.
Pourquoi: Le query folding pousse la logique de transformation vers le moteur de la base de données source, ce qui est significativement plus performant que de tirer toutes les données dans le moteur Spark pour la transformation.
Interroger une table telle qu'elle existait à un moment précis dans le passé pour un audit ou pour récupérer après une mise à jour accidentelle.
→Utiliser la fonction de time travel de Delta Lake avec `VERSION AS OF` ou `TIMESTAMP AS OF` dans la requête.
Pourquoi: Delta Lake versionne nativement chaque transaction, permettant des requêtes ponctuelles sans nécessiter de snapshots ou de sauvegardes manuelles.