【发布时间】:2022-01-05 15:57:53
【问题描述】:
我正在尝试在 aws 胶水作业中执行数据库还原,运行以下查询时出现语法错误:
RESTORE DATABASE dbname FROM DISK = '/tmp/database.bak'
调用 o79.load 时出错。关键字“RESTORE”附近的语法不正确。
我也尝试在 exec 中运行恢复脚本,但在尝试执行该操作时,在关键字“EXEC”附近出现语法错误。
是不是因为我只能通过spark查询表,不能做数据库恢复之类的事情?
我的spark代码如下:
df = sql_context.read.jdbc(
url=url,
table="RESTORE DATABASE db_name FROM DISK = '/tmp/local_file_name.bak'",
properties=jdbc_source['properties'],
)
【问题讨论】:
-
spark.read.jdbc用于从 sql 数据库中读取数据,那么您为什么要尝试从 Spark 恢复您的 sql server db?在你的 sql server 环境中恢复它,然后使用 spark 读取一些表。 -
我将获得大量备份,并考虑在它们进入 S3 后自动将它们读入 RDS。从这里我将把数据加载到 Redshift 中。我不想一次手动恢复每一个。
-
那你可以找一些脚本解决方案,但绝对不是spark的任务。
-
sql_context.read. -
你说这是一个 AWS RDS 实例吗?您是否尝试过使用
msdb.dbo.rds_restore_database代替?参考:Restoring a database
标签: sql-server apache-spark pyspark aws-glue