1

Vielen Dank im Voraus für Ihre Geduld. Ich schreibe eine lange Frage, um zu versuchen, so viele relevante Informationen wie möglich zur Verfügung zu stellen.Abrufen von Azure SQL Server-Daten in BigQuery

Meine Daten werden in Azure SQL Server gespeichert (nicht nach meiner Wahl) und ich möchte mit den Daten in Google BigQuery arbeiten. Ich möchte die Daten in BigQuery regelmäßig von SQL Server aktualisieren (zum Beispiel einmal pro Stunde oder einmal alle paar Stunden zum Beispiel).

Ich habe viele Möglichkeiten gefunden, Daten aus SQL Server zu ziehen und viele Möglichkeiten, Daten in BigQuery zu laden. Worauf ich als einfachste Lösung für den Augenblick gekommen bin, ist das Erstellen eines Ladejobs in BigQuery, der den SQL Server-URI verwendet. Die Daten in SQL Server haben automatisch geänderte/erstellte Tags, die Daten anzeigen, die seit dem letzten Ladejob aktualisiert oder hinzugefügt wurden.

Ich benötigte jedoch eine IP-Adresse für BigQuery, die ich meiner SQL Server-Whitelist hinzufügen konnte, um den Zugriff auf die SQL Server-Daten zu ermöglichen. In der Google-Dokumentation bestand die einzige Möglichkeit, eine IP-Adresse zu erhalten, darin, eine ComputeEngine-VM einzurichten (was ich getan habe - und ich erhielt eine IP-Adresse für die VM).

Meine Frage ist jetzt: Wie richte ich die ComputeEngine VM ein (oder ist es überhaupt möglich), um den BigQuery-Ladejob auszuführen, damit die ComputeEngine IP zur Anforderung von SQL Server verwendet wird? Oder, als Alternative, wie finde ich die IP, die von BigQuery verwendet wird, um die Anfrage an SQL Server zu stellen?

Wenn Sie irgendwelche Ideen haben - oder ein anderes Setup, das ich nicht in Betracht gezogen habe, bitte beschreiben Sie es für mich Schritt für Schritt. Ich bin ziemlich neu in der Branche.

Nochmals vielen Dank für Ihre Zeit und Rücksicht.

Antwort

0

AFAIK BigQuery wird keine Daten von anderen Servern abrufen (Sie müssen sie stattdessen an BigQuery senden oder aus einer GCS-Datei lesen), aber hier wird wie von WePay MySQL-> BigQuery geplant und automatisiert.

https://wecode.wepay.com/posts/bigquery-wepay

0

ich Ihre Aussage verwirrt bin, dass „die einfachste Lösung für jetzt eine Last Job in BigQuery schafft, die die SQL Server-URI verwendet“. Wie Felipe schrieb, werden BigQuery-Ladejobs den SQL-Server nicht erreichen. Sie laden nur Daten aus Google Cloud Storage (GCS).

Verwenden einer Google Compute Engine (GCE) VM, wie Sie vorschlagen, würde funktionieren. Sie müssten ein Skript auf der VM ausführen (z. B. bash oder Python), das den "SQL Server-URI" zum Abrufen von Daten verwendet, dann in GCS speichert und dann einen BigQuery-Ladejob startet, um die Daten von GCS zu laden.

Und ja, Sie können die öffentliche IP-Adresse dieser GCE-VM verwenden, um sie in Azure SQL auf die weiße Liste zu setzen.

Wenn Ihre Integrationsanforderungen komplexer sind, zeigt die WePay-Lösung unter dem Link von Felipe, wie Sie Airflow anstelle eines einfachen Skripts verwenden. Aber auf der BigQuery-Seite sind beide Lösungen gleichwertig: Etwas (ein einfaches Skript oder Airflow) ruft die Daten ab, speichert sie in GCS und ruft dann einen BigQuery-Ladejob auf.