1

ご理解いただきありがとうございます。私はできるだけ多くの関連情報を提供しようとする長い質問を書いています。Azure SQL ServerのデータをBigQueryに変換

私のデータはAzure SQL Serverに保存されています(私の選択ではありません)。私はGoogle BigQueryのデータを使用したいと思います。 BigQueryのデータをSQL Serverから定期的に更新したいとします(たとえば、1時間に1回、数時間に1回など)。

SQL Serverからデータを取得する方法が多数あり、多くの方法でBigQueryにデータをロードできます。私にとって最も簡単な解決策は、SQL Server URIを使用するBigQueryでロードジョブを作成することです。 SQL Serverのデータには、最後にロードされたジョブ以降に更新または追加されたデータを示す自動修正/作成タグがあります。

しかし、BigQueryのIPアドレスが必要でしたが、SQL Serverのホワイトリストに追加してSQL Serverデータへのアクセスを許可することができました。 Googleのドキュメントでは、IPアドレスを取得するための唯一の方法は、ComputeEngine VMを設定することでした(これまで行っていましたが、VMのIPアドレスを取得しました)。

質問:ComputeEngine IPを使用してSQL Serverを要求するように、ComputeEngine VMをBigQueryの読み込みジョブを実行するようにセットアップする(またはセットアップすることはできますか)。代わりに、BigQueryがSQL Serverにリクエストを行うために使用するIPを見つけるにはどうすればよいですか?

私が考えていないアイディアや他の設定がある場合は、それをステップごとに綴ってください。私はむしろ業界に新しいです。

あなたの時間と配慮を再度ありがとう。

答えて

0

AFAIK BigQueryは他のサーバからデータを引き出すことはありません(代わりにBigQueryにプッシュするか、GCSファイルから読み込む必要があります)が、WePayがMySQL-> BigQueryをスケジュールして自動化する方法があります。

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

0

私は「今の最も簡単な解決策は、SQL ServerのURIを使用したBigQueryでのロード・ジョブを作成している」ことをあなたの文で混乱しています。フェリペが書いたように、BigQueryのロードジョブはSQLサーバーに届きません。 Google Cloud Storage(GCS)のデータを読み込むだけです。

Google Compute Engine(GCE)のVMを使用することをお勧めします。 「SQL Server URI」を使用してデータを取得した後、GCSに保存した後、BigQueryロードジョブを開始してGCSからデータをロードするVM(bashまたはPythonなど)でスクリプトを実行する必要があります。

はい、そのGCE VMのパブリックIPアドレスを使用してAzure SQLでホワイトリストを作成できます。

統合の必要性がさらに複雑な場合、フェリペのリンクにあるWePayソリューションは、単純なスクリプトの代わりにエアフローを使用する方法を示しています。しかし、BigQuery側からは、どちらのソリューションも同等です。単純なスクリプト(またはAirflow)がデータを取得してGCSに格納し、次にBigQueryロードジョブを呼び出します。