Maison >développement back-end >Tutoriel Python >Workflow local : orchestrer l'ingestion de données dans Airtable
Le cycle de vie global des données commence par la génération de données et leur stockage d'une manière ou d'une autre, quelque part. Appelons cela le cycle de vie des données à un stade précoce et nous explorerons comment automatiser l'ingestion de données dans Airtable à l'aide d'un flux de travail local. Nous couvrirons la configuration d'un environnement de développement, la conception du processus d'ingestion, la création d'un script batch et la planification du flux de travail - en gardant les choses simples, locales/reproductibles et accessibles.
Parlons d’abord d’Airtable. Airtable est un outil puissant et flexible qui allie la simplicité d'une feuille de calcul à la structure d'une base de données. Je le trouve parfait pour organiser des informations, gérer des projets, suivre des tâches, et il dispose d'un niveau gratuit !
Nous développerions ce projet avec python, alors lancez votre IDE préféré et créez un environnement virtuel
# from your terminal python -m venv <environment_name> <environment_name>\Scripts\activate
Pour démarrer avec Airtable, rendez-vous sur le site Web d'Airtable. Une fois que vous avez créé un compte gratuit, vous devrez créer un nouvel espace de travail. Considérez un espace de travail comme un conteneur pour toutes vos tables et données associées.
Ensuite, créez une nouvelle table dans votre espace de travail. Un tableau est essentiellement une feuille de calcul dans laquelle vous stockerez vos données. Définissez les champs (colonnes) de votre tableau pour qu'ils correspondent à la structure de vos données.
Voici un extrait des champs utilisés dans le tutoriel, c'est une combinaison de Textes, Dates et Nombres :
Pour connecter votre script à Airtable, vous devrez générer une clé API ou un jeton d'accès personnel. Cette clé agit comme un mot de passe, permettant à votre script d'interagir avec vos données Airtable. Pour générer une clé, accédez aux paramètres de votre compte Airtable, recherchez la section API et suivez les instructions pour créer une nouvelle clé.
*N'oubliez pas de conserver votre clé API en sécurité. Évitez de le partager publiquement ou de le confier à des référentiels publics. *
Ensuite, appuyez sur exigences.txt. Dans ce fichier .txt placez les packages suivants :
pyairtable schedule faker python-dotenv
exécutez maintenant pip install -r Requirements.txt pour installer les packages requis.
Cette étape est l'endroit où nous créons les scripts, .env est l'endroit où nous stockerons nos informations d'identification, autoRecords.py - pour générer de manière aléatoire des données pour les champs définis et le ingestData.py pour insérer les enregistrements dans Airtable.
# from your terminal python -m venv <environment_name> <environment_name>\Scripts\activate
Ça a l'air bien, créons un contenu de sous-thème ciblé pour votre article de blog sur ce générateur de données sur les employés.
Lorsque vous travaillez sur des projets impliquant des données sur les employés, il est souvent utile de disposer d'un moyen fiable pour générer des exemples de données réalistes. Que vous construisiez un système de gestion des ressources humaines, un annuaire d'employés ou quoi que ce soit entre les deux, avoir accès à des données de test robustes peut rationaliser votre développement et rendre votre application plus résiliente.
Dans cette section, nous explorerons un script Python qui génère des enregistrements d'employés aléatoires avec une variété de champs pertinents. Cet outil peut être un atout précieux lorsque vous avez besoin de remplir votre application avec des données réalistes rapidement et facilement.
La première étape de notre processus de génération de données consiste à créer des identifiants uniques pour chaque dossier d'employé. Il s’agit d’une considération importante, car votre candidature nécessitera probablement un moyen de référencer de manière unique chaque employé. Notre script comprend une fonction simple pour générer ces identifiants :
pyairtable schedule faker python-dotenv
Cette fonction génère un identifiant unique au format "N-#####", où le numéro est une valeur aléatoire à 5 chiffres. Vous pouvez personnaliser ce format en fonction de vos besoins spécifiques.
Ensuite, regardons la fonction principale qui génère les enregistrements des employés eux-mêmes. La fonction generate_random_records() prend le nombre d'enregistrements à créer en entrée et renvoie une liste de dictionnaires, où chaque dictionnaire représente un employé avec différents champs :
"https://airtable.com/app########/tbl######/viw####?blocks=show" BASE_ID = 'app########' TABLE_NAME = 'tbl######' API_KEY = '#######'
Cette fonction utilise la bibliothèque Faker pour générer des données réalistes pour divers champs d'employés, tels que le nom, l'e-mail, le numéro de téléphone et l'adresse. Il comprend également quelques contraintes de base, comme limiter la tranche d'âge et la tranche salariale à des valeurs raisonnables.
La fonction renvoie une liste de dictionnaires, où chaque dictionnaire représente un enregistrement d'employé dans un format compatible avec Airtable.
Enfin, regardons la fonction prepare_records_for_airtable(), qui prend la liste des enregistrements des employés et extrait la partie « champs » de chaque enregistrement. C'est le format qu'Airtable attend pour importer des données :
def generate_unique_id(): """Generate a Unique ID in the format N-#####""" return f"N-{random.randint(10000, 99999)}"
Cette fonction simplifie la structure des données, ce qui facilite le travail lors de l'intégration des données générées avec Airtable ou d'autres systèmes.
Rassembler tout cela
Pour utiliser cet outil de génération de données, nous pouvons appeler la fonction generate_random_records() avec le nombre d'enregistrements souhaité, puis transmettre la liste résultante à la fonction prepare_records_for_airtable() :
# from your terminal python -m venv <environment_name> <environment_name>\Scripts\activate
Cela générera 2 enregistrements d'employés aléatoires, les imprimera dans leur format d'origine, puis imprimera les enregistrements dans le format plat adapté à Airtable.
Exécuter :
pyairtable schedule faker python-dotenv
Sortie :
"https://airtable.com/app########/tbl######/viw####?blocks=show" BASE_ID = 'app########' TABLE_NAME = 'tbl######' API_KEY = '#######'
En plus de générer des données réalistes sur les employés, notre script fournit également des fonctionnalités permettant d'intégrer de manière transparente ces données avec Airtable
Avant de pouvoir commencer à insérer nos données générées dans Airtable, nous devons établir une connexion à la plateforme. Notre script utilise la bibliothèque pyairtable pour interagir avec l'API Airtable. Nous commençons par charger les variables d'environnement nécessaires, y compris la clé API Airtable et l'ID de base et le nom de la table où nous souhaitons stocker les données :
def generate_unique_id(): """Generate a Unique ID in the format N-#####""" return f"N-{random.randint(10000, 99999)}"
Avec ces informations d'identification, nous pouvons ensuite initialiser le client API Airtable et obtenir une référence à la table spécifique avec laquelle nous voulons travailler :
def generate_random_records(num_records=10): """ Generate random records with reasonable constraints :param num_records: Number of records to generate :return: List of records formatted for Airtable """ records = [] # Constants departments = ['Sales', 'Engineering', 'Marketing', 'HR', 'Finance', 'Operations'] statuses = ['Active', 'On Leave', 'Contract', 'Remote'] for _ in range(num_records): # Generate date in the correct format random_date = datetime.now() - timedelta(days=random.randint(0, 365)) formatted_date = random_date.strftime('%Y-%m-%dT%H:%M:%S.000Z') record = { 'fields': { 'ID': generate_unique_id(), 'Name': fake.name(), 'Age': random.randint(18, 80), 'Email': fake.email(), 'Department': random.choice(departments), 'Salary': round(random.uniform(30000, 150000), 2), 'Phone': fake.phone_number(), 'Address': fake.address().replace('\n', '\n'), # Escape newlines 'Date Added': formatted_date, 'Status': random.choice(statuses), 'Years of Experience': random.randint(0, 45) } } records.append(record) return records
Maintenant que la connexion est établie, nous pouvons utiliser la fonction generate_random_records() de la section précédente pour créer un lot d'enregistrements d'employés, puis les insérer dans Airtable :
def prepare_records_for_airtable(records): """Convert records from nested format to flat format for Airtable""" return [record['fields'] for record in records]
La fonction prep_for_insertion() est chargée de convertir le format d'enregistrement imbriqué renvoyé par generate_random_records() au format plat attendu par l'API Airtable. Une fois les données préparées, nous utilisons la méthode table.batch_create() pour insérer les enregistrements en une seule opération groupée.
Pour garantir que notre processus d'intégration est robuste et facile à déboguer, nous avons également inclus des fonctionnalités de base de gestion des erreurs et de journalisation. Si des erreurs se produisent pendant le processus d'insertion des données, le script enregistrera le message d'erreur pour faciliter le dépannage :
if __name__ == "__main__": records = generate_random_records(2) print(records) prepared_records = prepare_records_for_airtable(records) print(prepared_records)
En combinant les puissantes capacités de génération de données de notre script précédent avec les fonctionnalités d'intégration présentées ici, vous pouvez remplir rapidement et de manière fiable vos applications basées sur Airtable avec des données réalistes sur les employés.
Pour rendre le processus d'ingestion de données entièrement automatisé, nous pouvons créer un script batch (fichier .bat) qui exécutera le script Python selon un calendrier régulier. Cela vous permet de configurer l'ingestion de données pour qu'elle se fasse automatiquement sans intervention manuelle.
Voici un exemple de script batch qui peut être utilisé pour exécuter le script ingestData.py :
python autoRecords.py
Décomposons les éléments clés de ce script :
Pour planifier l'exécution automatique de ce script batch, vous pouvez utiliser le Planificateur de tâches Windows. Voici un bref aperçu des étapes :
Désormais, le planificateur de tâches Windows exécutera automatiquement le script batch aux intervalles spécifiés, garantissant ainsi que vos données Airtable sont mises à jour régulièrement sans intervention manuelle.
Cela peut être un outil inestimable à des fins de test, de développement et même de démonstration.
Tout au long de ce guide, vous avez appris à configurer l'environnement de développement nécessaire, à concevoir un processus d'ingestion, à créer un script batch pour automatiser la tâche et à planifier le flux de travail pour une exécution sans surveillance. Nous comprenons désormais parfaitement comment exploiter la puissance de l'automatisation locale pour rationaliser nos opérations d'ingestion de données et débloquer des informations précieuses à partir d'un écosystème de données alimenté par Airtable.
Maintenant que vous avez configuré le processus automatisé d'ingestion de données, il existe de nombreuses façons de vous appuyer sur cette base et de débloquer encore plus de valeur à partir de vos données Airtable. Je vous encourage à expérimenter le code, à explorer de nouveaux cas d'utilisation et à partager vos expériences avec la communauté.
Voici quelques idées pour vous aider à démarrer :
Les possibilités sont infinies ! Je suis ravi de voir comment vous exploitez ce processus automatisé d'ingestion de données et débloquez de nouvelles informations et de la valeur à partir de vos données Airtable. N'hésitez pas à expérimenter, collaborer et partager vos progrès. Je suis là pour vous soutenir tout au long du chemin.
Voir le code complet https://github.com/AkanimohOD19A/scheduling_airtable_insertion, un didacticiel vidéo complet est en route.
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!