当前位置: 首页>数据库>正文

如何将sql server中的数据导入mongodb数据库中

将数据从 SQL Server 导入到 MongoDB 是一个常见的数据迁移任务。本文将详细介绍如何使用 Python 编程语言和相应的库来实现这个过程。本文将包括以下几个部分:

  1. 准备工作
  2. 连接 SQL Server 和提取数据
  3. 连接 MongoDB 并插入数据
  4. 完整示例代码

1. 准备工作

在开始之前,确保已经安装以下软件和库:

  • Python 3.x
  • SQL Server 数据库
  • MongoDB 数据库
  • pyodbc 库用于连接 SQL Server
  • pymongo 库用于连接 MongoDB

可以通过以下命令安装 pyodbcpymongo

pip install pyodbc pymongo

2. 连接 SQL Server 和提取数据

首先,使用 pyodbc 库连接到 SQL Server 并提取数据。以下是连接 SQL Server 的示例代码:

import pyodbc

# 配置SQL Server连接
server = 'your_server_name'  # 替换为你的SQL Server服务器名称或IP地址
database = 'your_database_name'  # 替换为你的数据库名称
username = 'your_username'  # 替换为你的用户名
password = 'your_password'  # 替换为你的密码

# 建立连接
conn = pyodbc.connect(
    'DRIVER={ODBC Driver 17 for SQL Server};'
    f'SERVER={server};'
    f'DATABASE={database};'
    f'UID={username};'
    f'PWD={password}'
)

# 创建游标
cursor = conn.cursor()

# 执行查询
query = 'SELECT * FROM your_table_name'  # 替换为你的表名
cursor.execute(query)

# 获取查询结果
rows = cursor.fetchall()
columns = [column[0] for column in cursor.description]

# 将数据转换为字典列表
data = []
for row in rows:
    row_dict = dict(zip(columns, row))
    data.append(row_dict)

# 关闭连接
cursor.close()
conn.close()

print("数据从SQL Server提取成功")

在上面的代码中,替换 your_server_nameyour_database_nameyour_usernameyour_passwordyour_table_name 为你的实际值。

3. 连接 MongoDB 并插入数据

接下来,使用 pymongo 库连接到 MongoDB 并将数据插入到 MongoDB 集合中。以下是连接 MongoDB 和插入数据的示例代码:

from pymongo import MongoClient

# 配置MongoDB连接
mongo_uri = 'mongodb://your_mongo_host:your_mongo_port/'  # 替换为你的MongoDB服务器URI
client = MongoClient(mongo_uri)

# 选择数据库和集合
mongo_db = client['your_mongo_database_name']  # 替换为你的MongoDB数据库名称
collection = mongo_db['your_mongo_collection_name']  # 替换为你的集合名称

# 插入数据
result = collection.insert_many(data)

print(f"数据插入MongoDB成功,插入了{len(result.inserted_ids)}条记录")

在上面的代码中,替换 your_mongo_hostyour_mongo_portyour_mongo_database_nameyour_mongo_collection_name 为你的实际值。

4. 完整示例代码

将以上步骤结合起来,形成一个完整的示例代码如下:

import pyodbc
from pymongo import MongoClient

def fetch_data_from_sql_server(server, database, username, password, table):
    conn = pyodbc.connect(
        'DRIVER={ODBC Driver 17 for SQL Server};'
        f'SERVER={server};'
        f'DATABASE={database};'
        f'UID={username};'
        f'PWD={password}'
    )
    cursor = conn.cursor()
    query = f'SELECT * FROM {table}'
    cursor.execute(query)
    rows = cursor.fetchall()
    columns = [column[0] for column in cursor.description]
    data = [dict(zip(columns, row)) for row in rows]
    cursor.close()
    conn.close()
    return data

def insert_data_into_mongodb(mongo_uri, database_name, collection_name, data):
    client = MongoClient(mongo_uri)
    mongo_db = client[database_name]
    collection = mongo_db[collection_name]
    result = collection.insert_many(data)
    return result

if __name__ == "__main__":
    # SQL Server配置
    sql_server = 'your_server_name'
    sql_database = 'your_database_name'
    sql_username = 'your_username'
    sql_password = 'your_password'
    sql_table = 'your_table_name'

    # MongoDB配置
    mongo_uri = 'mongodb://your_mongo_host:your_mongo_port/'
    mongo_database_name = 'your_mongo_database_name'
    mongo_collection_name = 'your_mongo_collection_name'

    # 从SQL Server提取数据
    data = fetch_data_from_sql_server(sql_server, sql_database, sql_username, sql_password, sql_table)
    print("数据从SQL Server提取成功")

    # 将数据插入MongoDB
    result = insert_data_into_mongodb(mongo_uri, mongo_database_name, mongo_collection_name, data)
    print(f"数据插入MongoDB成功,插入了{len(result.inserted_ids)}条记录")

总结

本文详细介绍了如何使用 Python 将 SQL Server 中的数据导入到 MongoDB。通过 pyodbc 库从 SQL Server 提取数据,并使用 pymongo 库将数据插入到 MongoDB。提供的完整示例代码展示了整个过程,适用于各种实际场景。希望本文对你的数据迁移工作有所帮助。


https://www.xamrdz.com/database/68z1960855.html

相关文章: