Python pour l'ingénierie des données etl
Python est un outil efficace pour implémenter les processus ETL. 1. Extraction des données: les données peuvent être extraites des bases de données, des API, des fichiers et d'autres sources via des pandas, sqlalchemy, demandes et autres bibliothèques; 2. Conversion des données: utilisez des pandas pour nettoyer, taper la conversion, l'association, l'agrégation et d'autres opérations pour assurer la qualité des données et optimiser les performances; 3. Chargement des données: utilisez la méthode Pandas To_SQL ou le SDK de la plate-forme cloud pour écrire des données sur le système cible, prêtez attention aux méthodes d'écriture et au traitement par lots; 4. Recommandations d'outils: Air Flow, Dagster, Prefect sont utilisés pour la planification et la gestion de processus, combinant des alarmes de journal et des environnements virtuels pour améliorer la stabilité et la maintenabilité.
Python est un outil très pratique pour les processus ETL dans l'ingénierie des données. Il a non seulement une syntaxe concise et facile à démarrer, mais a également un riche support de bibliothèque, qui peut compléter efficacement l'ensemble du processus à partir de l'extraction des données et de la conversion en chargement. Si vous effectuez un développement de pipelines de données et que vous utilisez Python pour faire ETL, ce n'est en fait pas difficile. La clé consiste à clarifier le processus et à choisir les bons outils.

Extraction des données: "supprimer" les données
La première étape de ETL consiste à extraire les données (extrait), et Python a une forte compatibilité à cet égard. Vous pouvez vous connecter à diverses sources de données, telles que les bases de données, les API, les fichiers CSV, les fichiers JSON, les tables Excel, etc.
Les bibliothèques couramment utilisées comprennent:

-
pandas
: il est facile de traiter les données structurées -
sqlalchemy
: Connectez-vous aux bases de données de type SQL (comme PostgreSQL, MySQL) -
requests
: appelez l'API pour obtenir des données -
pyodbc
oupsycopg2
: outil de connexion de base de données spécifique
Par exemple, si vous souhaitez obtenir des données de Postgres, vous pouvez l'écrire comme ceci:
De Sqlalchemy Import Create_Engine Importer des pandas en tant que PD moteur = Create_Engine ('postgresql: // utilisateur: mot de passe @ localhost: 5432 / mydb') query = "select * from Sales_data" df = pd.read_sql (requête, moteur)
Le point clé de cette étape est de s'assurer que les données peuvent être lues correctement et que les performances sont contrôlables . Si le volume de données est important, n'oubliez pas de paginer ou de limiter la portée de la requête.

Conversion des données: nettoyage, traitement, normalisation
La transformation est la partie la plus centrale de l'ETL et la plus sujette aux problèmes. Vous devez effectuer le nettoyage des données, le format l'uniformité, la cartographie des champs, le calcul des champs dérivés, etc.
Pandas est l'outil le plus utilisé et fournit de nombreuses méthodes pratiques:
-
fillna()
gère les valeurs manquantes - Type de conversion
astype()
-
merge()
etjoin()
sont liés -
groupby()
fait des statistiques d'agrégation
Par exemple, si vous souhaitez convertir le montant de la commande en un numéro de point flottant et remplir la valeur vierge en 0, vous pouvez le faire:
df ['montant'] = df ['montant']. Fillna (0) .astype (float)
Ce qui doit être noté à ce stade est:
- Inspection de la qualité des données (qu'il y ait des valeurs aberrantes ou des enregistrements en double)
- Enregistrer les résultats intermédiaires (éviter de retraiter chaque rediffusion)
- Optimisation des performances (considérez la base de la base ou l'étincelle lorsque de grands ensembles de données)
Chargement des données: enregistrez-le dans le système cible
La dernière étape consiste à charger (charge), ce qui signifie écrire des données traitées au système de stockage cible, comme un entrepôt de données (Redshift, BigQuery), un lac de données ou une autre base de données.
Prendre des pandas comme exemple, l'écriture de Postgres est très simple:
df.to_sql ('nettoyée_sales', moteur, if_exists = 'append', index = false)
Mais il y a quelques points auxquels faire attention à une utilisation réelle:
- Méthode d'écriture: ajoutez, remplacez et échoue en cas d'échec
- Écriture par lots: il est recommandé d'insérer de grands volumes de données par lots pour éviter le débordement de la mémoire ou le verrouillage de la table
- Index et contraintes: y a-t-il un index pour la table cible? Avez-vous besoin de le construire en premier?
Si vous écrivez sur une plate-forme cloud, vous devrez peut-être utiliser leurs SDK, tels que google-cloud-bigquery
de Google Cloud ou boto3
d'AWS.
Recommandations et conseils d'outils
En plus des capacités de code de base, vous pouvez également utiliser certains outils pour améliorer l'efficacité:
- Flux d'air : artefact de planification des tâches, adapté à la construction de pipelines ETL chronométrés
- Dagster / Prefect : Cadre de gestion des processus de données moderne, plus facile à utiliser
- Enregistrement et alerte : n'ignorez pas les alarmes de journalisation et de défaillance, sinon vous ne saurez pas si quelque chose ne va pas.
- Isolement environnemental : il est préférable d'utiliser des environnements virtuels (VENV ou Conda) pour différents projets
Un petit détail: ne pas les mots de passe de la base de données du code dur dans le code de production , vous pouvez utiliser des fichiers .env
pour coopérer avec python-dotenv
pour gérer la configuration.
Fondamentalement, c'est tout. Python ETL n'est pas compliqué, mais pour être stable et maintenable, vous devez toujours accorder plus d'attention à la conception des processus et à la manipulation des exceptions. Il existe de nombreux outils, mais la clé est d'utiliser un ou deux pour mûrir et d'étendre le reste au besoin.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le fichier SetfitS.JSON est situé dans le chemin de niveau utilisateur ou au niveau de l'espace de travail et est utilisé pour personnaliser les paramètres VScode. 1. Chemin de niveau utilisateur: Windows est C: \ Users \\ AppData \ Roaming \ Code \ User \ Settings.json, macOS est /users//library/applicationsupport/code/user/settings.json, Linux est /home//.config/code/user/settings.json; 2. Chemin au niveau de l'espace de travail: .vscode / Paramètres dans le répertoire racine du projet

Tout d'abord, CheckifThefnKeySettingisInterferingyTryingBothThevolumeKeyAlonEndfn volumeKey, thentogglefnlockwithfn espifavailable.2.enterbios / uefidUringbootAnableFunctionKeysordiSablehotKeyModetoenSureVolumeSarereCognined.3.updateorreinstallAdriodriving

TestThepdfinanotherApptodetermineIftheissueiswiththefileoredge.2.EnBlEthebuilt-inpdfViewerByTurningOff "AlwaysOpenpdffilesexternal" et "DownloadPdffiles" inedgestoSolver.

HTTP Log Middleware dans GO peut enregistrer les méthodes de demande, les chemins de requête, la propriété intellectuelle du client et le temps qui prend du temps. 1. Utilisez http.handlerfunc pour envelopper le processeur, 2. Enregistrez l'heure de début et l'heure de fin avant et après l'appel Suivant.Servehttp, 3. Obtenez le vrai client IP via R.RemoteAddr et X-Forwared-For Headers, 4. Utilisez le log.printf aux journaux de demande de sortie, 5. L'exemple de code complet a été vérifié pour s'exécuter et convient au démarrage d'un projet petit et moyen. Les suggestions d'extension incluent la capture des codes d'état, la prise en charge des journaux JSON et le suivi des ID de demande.

Python est un outil efficace pour implémenter les processus ETL. 1. Extraction des données: les données peuvent être extraites des bases de données, des API, des fichiers et d'autres sources via des pandas, sqlalchemy, demandes et autres bibliothèques; 2. Conversion des données: utilisez des pandas pour le nettoyage, la conversion de type, l'association, l'agrégation et d'autres opérations pour assurer la qualité des données et optimiser les performances; 3. Chargement des données: utilisez la méthode Pandas To_SQL ou le SDK de la plate-forme cloud pour écrire des données sur le système cible, faire attention aux méthodes d'écriture et au traitement par lots; 4. Recommandations d'outils: Air Flow, Dagster, Prefect sont utilisés pour la planification et la gestion de processus, combinant des alarmes de journal et des environnements virtuels pour améliorer la stabilité et la maintenabilité.

L'utilisation de pandasstyling dans Jupyternotebook peut réaliser le bel affichage de DataFrame. 1. Utilisez Highlight_max et Highlight_min pour mettre en évidence la valeur maximale (vert) et la valeur minimale (rouge) de chaque colonne; 2. Ajouter la couleur d'arrière-plan du gradient (comme le blues ou les rouges) à la colonne numérique via background_gradient pour afficher visuellement la taille des données; 3. Fonction personnalisée Color_score combinée avec ApplyMap pour définir des couleurs de texte pour différents intervalles fractionnaires (≥90 vert, 80 ~ 89 orange, 60 ~ 79 rouge,

Le module de journalisation de Python peut écrire des journaux dans les fichiers via FileHandler. Tout d'abord, appelez le processeur et format de fichier de configuration BasicConfig, tels que la définition du niveau sur les informations, en utilisant FileHandler pour écrire app.log; Deuxièmement, ajoutez StreamHandler pour atteindre la sortie à la console en même temps; Les scénarios avancés peuvent utiliser TimeRotingFileHandler pour diviser les journaux par le temps, par exemple, définir quand = 'Midnight' pour générer de nouveaux fichiers chaque jour et conserver 7 jours de sauvegarde, et assurez-vous que le répertoire de journal existe; Il est recommandé d'utiliser GetLogger (__ Name__) pour créer des journalistes nommés et produire

Calculé a un cache et les accès multiples ne sont pas recalculés lorsque la dépendance reste inchangée, tandis que les méthodes sont exécutées à chaque fois qu'elles sont appelées; 2.COMPUT est adapté aux calculs basés sur des données réactives. Les méthodes conviennent aux scénarios où les paramètres sont requis ou les appels fréquents, mais le résultat ne dépend pas de données réactives; 3.Coupation prend en charge les getters et les setters, ce qui peut réaliser la synchronisation bidirectionnelle des données, mais les méthodes ne sont pas prises en charge; 4. Résumé: Utilisez d'abord calculé pour améliorer les performances et utilisez des méthodes lors de la réussite des paramètres, de l'exécution d'opérations ou d'éviter le cache, en suivant le principe de "Si vous pouvez utiliser calculé, vous n'utilisez pas de méthodes".
