Rufen Sie Daten über die Salesforce-API (Bulk-API) in Python ab und laden Sie sie in BigQuery

Hintergrund

Ich möchte mit Python Daten von Salesforce abrufen. Dieses Mal habe ich eine Bibliothek namens simple_salesforce und Bulk-API der Salsesorce-API verwendet. -jp.api_asynch.meta / api_asynch / asynch_api_intro.htm), um die Daten abzurufen und in BigQuery zu laden.

Rund um die Authentifizierung

Bereiten Sie die folgenden drei vor

Implementierungsbeispiel


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") #Entspricht verstümmelten japanischen Schriftzeichen

    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 #Geben Sie gegebenenfalls das Schema an

        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))

Referenz

Ich habe das stärkste SOQL-Ausführungstool erstellt, an das ich gedacht habe

Recommended Posts

Rufen Sie Daten über die Salesforce-API (Bulk-API) in Python ab und laden Sie sie in BigQuery
Holen Sie sich Google Fit API-Daten in Python
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
Holen Sie sich LeapMotion-Daten in Python.
Abrufen von Salesforce-Daten mithilfe der REST-API
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Zeichnen Sie Daten einfach in Shell und Python
[Python] Vorsichtsmaßnahmen beim Erfassen von Daten durch Scraping und Einfügen in die Liste
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Holen Sie sich das Wetter in Osaka über Web-API (Python)
Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden
[Python] Holen Sie sich alle Kommentare mit Youtube Data Api
Empfangen und Anzeigen von HTML-Formulardaten in Python
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Laden Sie den Befehl von yml mit Python und führen Sie ihn aus
POST JSON mit Python und empfange mit PHP
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Bis Sie tägliche Daten für mehrere Jahre japanischer Bestände erhalten und diese in einer einzigen CSV (Python) speichern
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Holen Sie sich mit Python Daten vom GPS-Modul mit 10 Hz
[Python] Abrufen von Insight-Daten mithilfe der Google My Business-API
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
Bis Sie Daten in eine Tabelle in Python einfügen
Rufen Sie die aktuellen Standortinformationen und den Benutzeragenten in Python ab
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
Holen Sie sich Aktienkurse und erstellen Sie mit Python Kerzendiagramme
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Evernote-API in Python
C-API in Python 3
Versuchen Sie es mit GUI, PyQt in Python
Holen Sie sich Ihre Herzfrequenz von der Fitbit-API in Python!
Erhalten Sie Daten mithilfe der API des Ministeriums für innere Angelegenheiten und Kommunikation
Holen Sie sich den MIME-Typ in Python und bestimmen Sie das Dateiformat
Holen Sie sich Python-Webseite, Zeichenkodierung und Anzeige
Poisson-Verteilung und kumulative Poisson-Verteilung über SQLite in Python und Java
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
Drücken Sie in Python auf REST, um Daten von New Relic abzurufen
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Objektorientiert in C-Sprache: "○ ✕ game" wurde überarbeitet und nach Python portiert
Generierung von Spezifikationen und Code in der REST-API-Entwicklung (Python Edition)
Installieren Sie CaboCha in der Ubuntu-Umgebung und rufen Sie es mit Python auf.
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Rufen Sie github api in Python auf, um Informationen zur Pull-Anforderung zu erhalten