要将SQL Server中的数据复制到AWS S3中,可以使用AWS Glue服务。下面是一个示例代码,演示如何使用AWS Glue将数据从SQL Server复制到S3。
首先,创建一个Python脚本,命名为sql_server_to_s3.py,并添加以下代码:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
# 获取参数
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
# 初始化Spark和Glue上下文
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
# 定义数据源连接信息
connection_options = {
"url": "jdbc:sqlserver://:;database=",
"dbtable": "",
"user": "",
"password": "",
"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}
# 读取SQL Server数据到Spark DataFrame
datasource = glueContext.create_dynamic_frame.from_options(
connection_type="sqlserver",
connection_options=connection_options
)
# 将数据写入S3
glueContext.write_dynamic_frame.from_options(
frame=datasource,
connection_type="s3",
connection_options={
"path": "s3:////"
},
format="csv"
)
# 完成作业
job.commit()
请注意,需要将、、、、、替换为实际的SQL Server连接信息,并将和替换为实际的S3存储桶和前缀。
然后,使用AWS Glue的命令行界面或控制台创建一个Glue作业,并将上述代码上传为作业脚本。
运行Glue作业后,它将从SQL Server读取数据并将其写入指定的S3存储桶中。
希望以上解决方案能够满足您的需求。