• BI-SQL丨SNAPSHOT


    在这里插入图片描述

    快照(SNAPSHOT)

    我们在做BI项目的过程,一旦数据涉及到数据库,那么需要考量到的点就比较多。

    1.如果数仓是在项目过程中搭建的,那么需要考虑高可用、灾备机制以及安全性问题;

    2.如果我们只是需要连接数据库,那么需要考虑账号权限问题以及历史信息是否完整。

    快照(Snapshot),是SQL Server中比较重要的一个功能,也是PowerBI欠缺的功能。

    简单来说,快照就是在数据库中进行截图,保留数据库在截图时的数据状态,以备有突发灾备情况进行数据恢复。

    创建快照语法

    CREATE DATABASE Snapshotname ON  --快照名称
    (
       Name =DataBaseName ,  --源数据库名称
       FileName = 'C:\xx\xx'  --快照文件地址
    )
    AS SNAPSHOT OF DataBaseName;  --源数据库名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    使用实例

    案例数据:

    在这里插入图片描述

    在白茶本机的数据库中,存在名为“BaiCha”的数据库,存在名为“ODS_BaiCha”和“STG_BaiCha”的两张表。

    例子1:为数据库BaiCha创建快照。

    CREATE DATABASE BaiCha_Shot ON
    (
       Name = BaiCha,
       FileName = 'C:\SQL Server\BaiCha_Shot.ss'
    )
    AS SNAPSHOT OF BaiCha;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    结果如下:

    在这里插入图片描述
    在这里插入图片描述

    例子2:清除数据库BaiCha中的数据,使用快照进行数据恢复。

    我们先对数据库BaiCha中的数据进行清空。

    USE BaiCha
    TRUNCATE TABLE ODS_BaiCha
    TRUNCATE TABLE STG_BaiCha
    SELECT *
    FROM ODS_BaiCha
    SELECT *
    FROM STG_BaiCha
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    结果如下:

    在这里插入图片描述

    恢复代码语法:

    RESTORE DATABASE DB_NAME  --恢复的数据库名称
    FROM DATABASE_SNAPSHOT = 'DB_SNAPSHOT_NAME'  --需要使用的快照
    
    • 1
    • 2

    输入如下代码:

    USE master
    RESTORE DATABASE BaiCha
    FROM DATABASE_SNAPSHOT = 'BaiCha_Shot'
    
    • 1
    • 2
    • 3

    结果如下:

    在这里插入图片描述
    在这里插入图片描述

    可以看到,数据库BaiCha已经恢复到快照的状态。

    例子3:对快照进行删除。

    快照的删除语法和删除DataBase的语法是一样的。

    DROP DATABASE BaiCha_Shot
    
    • 1

    在这里插入图片描述

    注意事项:

    1.快照是只读的,一旦创建无法修改;

    2.执行快照还原操作时,无法针对某张表进行还原,针对的是数据库整体;

    3.快照一般与JOB搭配使用,进行数据备份。

    项目应用:

    1.维护历史数据,例如,汇率我们需要进行所有版本的留存;

    2.对数据进行备份,防止某些失误造成的数据丢失。

    在这里插入图片描述
    在这里插入图片描述

    这里是白茶,一个PowerBI的初学者。

  • 相关阅读:
    opencv图像水平/竖直拼接hconcat()/vconcat()
    kafka学习总结三
    爬虫项目(四):批量下载高清美女桌面壁纸
    五分钟,Docker安装kafka 3.5,kafka-map图形化管理工具
    java基于SpringBoot+Vue的家具销售商城系统 element 前后端分离
    SpringBoot 之 Jasypt 实现yml配置文件加密
    代码随想录7——哈希表:454四数相加II、383赎金信、15三数之和、18四数之和
    从0开始python学习-22.selenium 常见键盘的操作
    【每日一题Day330】LC337打家劫舍Ⅲ | 动态规划
    Go --- go-elasticsearch介绍及简单使用
  • 原文地址:https://blog.csdn.net/sterln/article/details/127942245