Microsoft SQL Server bcp (批量复制) 包装程序,带有Azure Synapse Blob替代方案
项目描述
bcpyaz
这是什么?
此包是Microsoft SQL Server bcp实用程序的包装器。当前Python中可用的数据库驱动器不足以传输数百万条记录(是的,我已经尝试了pyodbc fast_execute_many)。尽管有IO击打,但最快的选择是将数据保存到文件系统中的CSV文件(最好是/dev/shm tmpfs),然后使用bcp实用程序将CSV文件传输到SQL Server。
Azure Synapse / Blob扩展
如果设置了以下环境变量(示例)
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=myblogstorageacct;AccountKey=jhadsfas235876dha90/17891hfh25125/12h2udfjs347512==;EndpointSuffix=core.windows.net"
AZURE_TEMP_STORAGE_CONTAINER="tempcontainer"
那么将不会使用bcp命令行实用程序,而是将CSV文件临时复制到Azure Storage Blob,并使用COPY将其从那里传输到Synapse数据库。
您可能需要
GRANT ADMINISTER DATABASE BULK OPERATIONS TO <user>
到Synapse的连接用户。
sqlcmd实用程序仍然需要。
如何安装它?
确保您的计算机满足要求。
从git clone本地安装
pip install -e .
或通过requirements.txt
-e git+https://git@github.com/Arcturus-io/bcpyaz.git#egg=bcpyaz
示例
以下示例向您展示如何使用此包将(1)平面文件和(2)DataFrame对象加载到SQL Server中。
平面文件
以下示例假设您有一个没有路径中限定符的逗号分隔文件 'tests/data1.csv'。下面的代码将文件发送到SQL Server。
import bcpy
sql_config = {
'server': 'sql_server_hostname',
'database': 'database_name',
'username': 'test_user',
'password': 'test_user_password1234'
}
sql_table_name = 'test_data1'
csv_file_path = 'tests/data1.csv'
flat_file = bcpy.FlatFile(qualifier='', path=csv_file_path)
sql_table = bcpy.SqlTable(sql_config, table=sql_table_name)
flat_file.to_sql(sql_table)
DataFrame
以下示例创建一个包含100行和4列的DataFrame,其中填充了随机数据,然后将其发送到SQL Server。
import bcpy
import numpy as np
import pandas as pd
sql_config = {
'server': 'sql_server_hostname',
'database': 'database_name',
'username': 'test_user',
'password': 'test_user_password1234'
}
table_name = 'test_dataframe'
df = pd.DataFrame(np.random.randint(-100, 100, size=(100, 4)),
columns=list('ABCD'))
bdf = bcpy.DataFrame(df)
sql_table = bcpy.SqlTable(sql_config, table=table_name)
bdf.to_sql(sql_table)
要求
您需要在系统中安装一个可工作的Microsoft bcp版本。您的PATH环境变量应包含bcp实用程序的目录。以下是不同操作系统的安装教程。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
bcpyaz-0.2.0.tar.gz (11.5 kB 查看哈希值)
构建分布
bcpyaz-0.2.0-py3-none-any.whl (12.7 kB 查看哈希值)
关闭
bcpyaz-0.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc2a93d7f387e8b26162b2fe9cc5dc70d90c453db2971705fe59ce78234c3300 |
|
MD5 | cee89eb13762b02071df66f7f80b7eda |
|
BLAKE2b-256 | 2573bdf14576db83317778d1a54babcfe043714191b79f52f93da928e8912ce9 |
关闭
bcpyaz-0.2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 47c70c5bc24a40da78e0fd5ad01c7722ed2b4bc0272906e52cfab0159b56d5c5 |
|
MD5 | f07ed8628cf16f36f7ebb3aab6a72080 |
|
BLAKE2b-256 | 85f6c9f3fd0764f351c8eb6be16c8b29296efadae66fbe0019e6c4b85c44af49 |