文章目录

    • 安装
    • 配置
    • 备份、还原数据库
        • .bak文件还原数据库
        • 备份数据库为.bak文件
    • 使用JDBC连接SQL Server
        • 配置
        • Spark连接SQL Server代码

安装

下载:https://www.microsoft/zh-cn/download/details.aspx?id=23650

下载完成后进行安装,安装过程不写了,安装完成后进行配置。

配置

打开SQL Server 配置管理器(Sql Server Configuration Manager),
按下图启用TCP/IP和Named Pipes协议:

然后,启动SQL Server (SQLEXPRESS)服务,如图:

至此,就可以打开SQL Server Management Studio管理数据库了。

先建立连接。我是在本地运行,使用Windows身份验证,如图填写并连接:

连接成功就可以进行查询了:

SELECT TOP 100 * 
  FROM cdsgus
  where Name like '李%';

备份、还原数据库

.bak文件还原数据库

  1. 右键数据库,选还原数据库;
  2. 在弹出的还原数据库窗口中,源设备位置选择数据库备份文件(.bak文件),目标数据库位置填入数据库名称,填入的名称最好和下面的一致;
  3. 点击确定,等待完成。

备份数据库为.bak文件

  1. 右键要备份的数据库,选择任务、备份;
  2. 在弹出的备份数据库窗口中,填入相关信息;
  3. 点击确定,等待完成。

使用JDBC连接SQL Server

配置

打开SQL Server 配置管理器,配置连接端口:

下载JDBC驱动:https://www.microsoft/zh-CN/download/details.aspx?id=57782

安装驱动,会自动解压到一个目录。

将目录中相应jar文件加入程序classpath目录。

我是采用Windows身份验证连接的,需要将驱动目录下,auth目录的相应sqljdbc_auth.dll文件放入windows\system32下。

然后就可以用JDBC连接了。

Spark连接SQL Server代码

下面是我用spark连接SQL Server的程序,供参考。

其中jdbc_test方法是采用纯jdbc方式连接的,不涉及spark。

import org.apache.spark.sql.SparkSession
import java.sql.DriverManager
import java.util.Properties

object SQLServerTest {
  def main(args: Array[String]): Unit = {
    System.setProperty("hadoop.home.dir", "E:\\hadoop-2.7.5")
    val spark = SparkSession
      .builder()
      .appName("SQLServerTest")
      .config("spark.sql.parquet.writeLegacyFormat", true)
      .enableHiveSupport()
      .getOrCreate()
    import spark.implicits._

    val url = "jdbc:sqlserver://localhost:1433;databaseName=shifenzheng;integratedSecurity=true;"
    val prop = {
      val p = new Properties
      p.put("url", url)
      p
    }
    val df = spark.read.jdbc(url, "(select * from cdsgus) a",
      "id", 2, 20050145, 4, prop)

    df.show
    println(df.count)
    df.write.saveAsTable("cdsgus")
  }

  def jdbc_test() {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
    val url = "jdbc:sqlserver://localhost:1433;databaseName=shifenzheng;integratedSecurity=true;"
    val conn = DriverManager.getConnection(url)
    val stmt = conn.createStatement()
    val sql = "select min(id) as id from cdsgus";
    val rs = stmt.executeQuery(sql);
    while (rs.next()) {
      println(rs.getInt("id"));
    }
    rs.close();
    stmt.close();
    conn.close();
  }
}

更多推荐

SQL Server 安装、配置、使用