将特定数据从远程 Microsoft SQL 服务器迁移到 Google Cloud Platform

问题描述 投票:0回答:1

我的任务是将数据从远程 Microsoft SQL 服务器迁移到 Google Cloud Big Query 表。有问题的数据来自使用公共键连接两个表并使用

WHERE
子句进行过滤。下面给出了作为 Python f 字符串的查询示例:

query = f'''
    SELECT dbo.SalesHeaders.* 
    FROM dbo.Nodes WITH (NOLOCK) 
    INNER JOIN dbo.SalesHeaders WITH (NOLOCK) 
    ON dbo.Nodes.node = dbo.SalesHeaders.node 
    AND CONVERT(DATE , dbo.SalesHeaders.DateTime) BETWEEN '{start.strftime('%Y-%m-%d')}' AND '{end.strftime('%Y-%m-%d')}'
    WHERE dbo.Nodes.companytype = 1
    '''

当前实现上述任务的方法是通过在我的本地计算机上运行的 Python 脚本。其成功的一个关键部分是安装了 SQL 驱动程序,Python 中的

pyodc
库需要该驱动程序才能建立连接。下面给出一个例子:

import pyodbc
import json

CREDENTIALS = 'blah_blah.json'

def establish_connector():
    with open(CREDENTIALS,'r') as file:
        credentials = json.load(file)
    connector = pyodbc.connect(
                               'DRIVER={SQL Server};'+\ # uploads.gaap.com,5143
                               f'SERVER={credentials["server"]};'+\
                               f'DATABASE={credentials["database"]};'+\
                               f'UID={credentials["username"]};'+\
                               f'PWD={credentials["password"]}'
                               )
    return connector

在我之前的问题中,我尝试复制这种方法,以便我的脚本可以使用 Apache Beam Python SDK 作为 Google Cloud 函数或 DataFlow 管道运行。由于在无服务器环境中缺少安装的 SQL 驱动程序,所以我没有取得太大成功。

我之前的问题仅限于使用云函数或数据流方法。在这个问题上,我愿意接受更广泛的解决方案。换句话说,

请建议并概述能够将数据从给定查询迁移到 Google Cloud Platform 的任何方法,以便最终可由 Big Query 访问。 我已经开始考虑以下可以扩展的内容:

安排虚拟机 (VM) 实例来运行 Python 脚本。这可行,因为可以在虚拟机上安装 SQL 驱动程序。
  1. 创建 SQL Server 实例并使用数据库迁移服务。我认为这会迁移比需要的更多的数据。一旦可以通过复制上述查询来构建一个与此新 SQL 服务器相关的 Big Query 表。我不确定与此相关的费用,因此很犹豫。
sql-server google-cloud-platform google-cloud-functions driver data-transfer
1个回答
0
投票
JDBC URL、用户名和密码

,然后单击 execute,即可确保作业完美执行,轻松交付预期结果。

© www.soinside.com 2019 - 2024. All rights reserved.