Obtenez des données via l'API Salesforce (API en masse) en Python et chargez-les dans BigQuery

Contexte

Je souhaite obtenir des données de Salesforce à l'aide de Python. Cette fois, j'ai utilisé une bibliothèque appelée simple_salesforce et Bulk API of Salsesorce API. -jp.api_asynch.meta / api_asynch / asynch_api_intro.htm) pour obtenir les données et les charger dans BigQuery.

Autour de l'authentification

Préparez les trois

Exemple d'implémentation


from google.cloud import bigquery
from simple_salesforce import Salesforce
import json
import os


class SalesforceAPI:
    def __init__(self, job_type):
        self.sf = Salesforce(
            username='USERNAME',
            password='PASSWORD',
            security_token='SECURITY_TOKEN'
        )

    def execute(self):
        self.dl_file()
        self.load_to_bq()

    def dl_file(self):
        res = self.sf.bulk.TABLE_NAME.query('SELECT column1, column2 FROM TABLE_NAME')
        with open('dl_file_name', mode='w') as f:
            for d in res:
                f.write(json.dumps(d, ensure_ascii=False) + "\n") #Correspondant à des caractères japonais déformés

    def load_to_bq(self):
        client = bigquery.Client('project')
        filename = 'file_name'
        dataset_id = 'dataset'
        dataset_ref = client.dataset(dataset_id)
        table_id = 'table_name'
        table_ref = dataset_ref.table(table_id)

        job_config = bigquery.LoadJobConfig()
        job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON
        job_config.autodetect = True #Spécifiez le schéma si nécessaire

        with open(filename, "rb") as source_file:
            job = client.load_table_from_file(
                source_file, table_ref, job_config=job_config
            )
            job.result()
            print("Loaded {} rows into {}:{}.".format(
                job.output_rows, dataset_id, table_id))

référence

J'ai créé l'outil d'exécution SOQL le plus puissant auquel j'ai pensé

Recommended Posts

Obtenez des données via l'API Salesforce (API en masse) en Python et chargez-les dans BigQuery
Obtenez les données de l'API Google Fit en Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Obtenez des données LEAD à l'aide de l'API REST de Marketo en Python
Obtenez des données LeapMotion en Python.
Obtenir des données Salesforce à l'aide de l'API REST
Obtenir des données de Quandl en Python
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Obtenez des données supplémentaires vers LDAP avec python
Exemple de code pour obtenir oauth_token et oauth_token_secret de l'API Twitter en Python 2.7
Représentez facilement des données graphiques dans le shell et Python
[Python] Précautions lors de l'acquisition de données en grattant et en les mettant dans la liste
[Python] Comment nommer les données de table et les sortir avec csv (méthode to_csv)
Obtenez des données de séries chronologiques de k-db.com avec Python
Obtenez la météo à Osaka via l'API Web (python)
Variables Python et types de données appris avec la chimio-automatique
[Python] Obtenez tous les commentaires à l'aide de Youtube Data Api
Recevoir et afficher les données de formulaire HTML en Python
[Python] Permutation des lignes et des colonnes de données Numpy
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Charger et exécuter la commande depuis yml avec python
POST JSON avec Python et recevez avec PHP
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
Essayez d'utiliser l'API ChatWork et l'API Qiita en Python
Jusqu'à ce que vous obteniez des données quotidiennes pour plusieurs années de stock japonais et que vous les sauvegardiez dans un seul CSV (Python)
Traitement pleine largeur et demi-largeur des données CSV en Python
Obtenez des données du module GPS à 10 Hz avec Python
[Python] Obtenez des données insight à l'aide de l'API Google My Business
Envoyez et recevez Gmail via l'API Gmail en utilisant Python
Jusqu'à ce que vous insériez des données dans une feuille de calcul en Python
Obtenir les informations de localisation actuelles et l'agent utilisateur en Python
Obtenez des commentaires et des abonnés avec l'API de données YouTube
Recevoir des e-mails de Gmail et étiqueter avec Python3
Obtenez les cours des actions et créez des graphiques en bougies avec Python
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Obtenir des données de la base de données via ODBC avec Python (Access)
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
API Evernote en Python
API C en Python 3
Essayez de le faire avec GUI, PyQt en Python
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Obtenez des données à l'aide de l'API du ministère des Affaires intérieures et des Communications
Obtenez le type MIME en Python et déterminez le format de fichier
Obtenez la page Web Python, encodez et affichez les caractères
Distribution de Poisson et tracé de distribution cumulative de Poisson via sqlite en Python et Java
Débarrassez-vous des données sales avec Python et les expressions régulières
Manipulez le presse-papiers en Python et collez le tableau dans Excel
Obtenez la date et l'heure actuelles en Python, en tenant compte du décalage horaire
Appuyez sur REST en Python pour obtenir des données de New Relic
Prédire le sexe à partir du nom à l'aide de l'API Gender et de Pykakasi en Python
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Obtenez des données de l'API d'analyse avec le client API Google pour python
Orienté objet en langage C: "○ ✕ game" a été refacturé et porté en Python
Génération de spécifications et génération de code dans le développement d'API REST (édition Python)
Installez CaboCha dans l'environnement Ubuntu et appelez-le avec Python.
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Appelez l'API github en python pour obtenir des informations sur la demande d'extraction