美文网首页
Data Warehouse(1)

Data Warehouse(1)

作者: 山猪打不过家猪 | 来源:发表于2023-03-03 05:14 被阅读0次

    1.Data Warehouse 结构

    • 存储Store和计算(Datawarehouse,Databricks)是分离的
    • 在不进行计算的时候,是不收取费用的,但是存储会收费


      image.png
    • 功能:
      Data Factory:用于从不同的数据源来提取数据
      Data Lake: 将提取的各种形式的数据存储
      Databricks: 用来处理数据,清洗数据
      Data Warehouse: 处理完成的数据,可以放入在这里,供其他地方使用

    2. Dedicated SQL pool

    两种方式创建:

    1. 直接创建
    2. 使用Synapse Analytics

    2.1 单独创建

    1. 创建服务器


      image.png
    2. 设置网络


      image.png

    2.2创建synapse

    image.png
    • 创建


      image.png
    • 创建信息


      image.png

    3.创建sqlpool并且使用

    3.1创建一个sqlpool2

    image.png

    创建成功后,我们可以在这里看到


    image.png

    3.2 添加创建表和载入数据的脚本

    image.png

    3.3 导入脚本并且执行

    image.png
    注意:在使用新的脚本的时候一定要记得切换数据库
    image.png

    4.从azure sql里移动数据到sqlpool里

    • 创建


      image.png
      1. 添加任务


        image.png
    • 2.添加连接


      image.png
      1. 选择需要的表


        image.png
    • 4.移动sqlpool并且命名表明


      image.png
      1. 完成迁移


        image.png

    5. 本地数据上传到azure(032-)

    5.1 创建Blob Storage Account并添加文件

      1. 创建账户


        image.png
      1. 创建容器


        image.png
      1. 添加容器


        image.png
      1. 上传文件


        image.png
      1. 使用资源管理查看文件
        下载地址:azure.microsoft.com/en-us/features/storage-explorer/
        image.png
      1. 查看文件


        image.png

    5.2 用Polybius将文件从blob移动到azure data warehouse

    • 1.在本地资源文件夹中可以找到2个文件


      image.png
      1. 用sqlserver连接azure
      1. 生成MASTER KEY
    #1.生成master key
    CREATE MASTER KEY
    GO
    
      1. 创建数据库,用密钥


        image.png
    CREATE DATABASE SCOPED CREDENTIAL BlobStorageCredential
    WITH
        IDENTITY = 'blobuser',  
        SECRET = 'ZYfcNUnKJLRqDpZDwly1dUb8bsXe3NP8Ti4nLXCbd8jhYwEoWaBUohGN3cK4eQ0mCKr6WAEBAaUSQmY8b3hhzA=='   
    ;
    GO
    
      1. 创建外部数据源的连接AzureBlobStorage
    CREATE EXTERNAL DATA SOURCE AzureBlobStorage
    WITH (
        TYPE = HADOOP,
        LOCATION = 'wasbs://demofiles@synapsestorage108.blob.core.windows.net',
        CREDENTIAL = BlobStorageCredential
    );
    GO
    

    其中: demofiles是容器里的文档名,synapsestorage108是容器的名称
    BlobStorageCredential是上面创建的库名

      1. 读取外部的csv文件
    CREATE EXTERNAL FILE FORMAT CSVFileFormat 
    WITH 
    (   FORMAT_TYPE = DELIMITEDTEXT
    ,   FORMAT_OPTIONS  (   FIELD_TERMINATOR = ','
                        ,   STRING_DELIMITER = ''
                        ,   DATE_FORMAT      = 'yyyy-MM-dd HH:mm:ss'
                        ,   USE_TYPE_DEFAULT = FALSE 
                        )
    );
    GO
    

    其中,FIELD_TERMINATOR表示,csv字段终止符是,
    STRING_DELIMITER是分隔符,这里为空
    USE_TYPE_DEFAULT表示NAN不用默认的处理方式,直接为NULL

      1. 创建外部表来映射给blob存储容器
    CREATE SCHEMA [stage];
    GO
    
    CREATE EXTERNAL TABLE [stage].FactTransactionHistory 
    (
        [TransactionID] [int] NOT NULL,
        [ProductKey] [int] NOT NULL,
        [OrderDate] [datetime] NULL,
        [Quantity] [int] NULL,
        [ActualCost] [money] NULL
    )
    WITH
    (
        LOCATION='/FTH/' 
    ,   DATA_SOURCE = AzureBlobStorage
    ,   FILE_FORMAT = CSVFileFormat
    ,   REJECT_TYPE = VALUE
    ,   REJECT_VALUE = 0
    )
    GO
    
    image.png

    这样就创建一个名为stage单独模式在外部表里,这是一个缓冲表,我们可以将最终的数据从找个缓冲表里移动到azure datawarehouse里

      1. 将数据从外部的stage表里移动到azure中
    CREATE SCHEMA [prod];
    GO
    
    --DROP TABLE [prod].[FactTransactionHistory] 
    CREATE TABLE [prod].[FactTransactionHistory]       
    WITH (DISTRIBUTION = HASH([ProductKey]  ) ) 
    AS 
    SELECT * FROM [stage].[FactTransactionHistory]        
    OPTION (LABEL = 'Load [prod].[FactTransactionHistory1]');
    
    
    image.png
      1. 查看这些数据在数据库总分布情况
    DBCC PDW_SHOWSPACEUSED('prod.FactTransactionHistory');
    

    在这个分布式系统中3百万行的数据被平均分配到60个子节点上

    • 10.总结过程


      image.png

    6. 使用Data Factory迁移数据

    image.png

    1.创建Data Factory


    image.png
    1. 进入工厂面板,添加数据迁移


      image.png

      3.准备迁移据前的准备
      1)创建与blob的连接


      image.png
      2)创建与azure synapse的连接
      image.png

      3)在Data warehouse里创建空表


      image.png
    2. 建立映射


      image.png

      5.设置


      image.png
    3. 迁移


      image.png

    8.导出数据

    1.选择需要到的库

    2.选择输出的类型


    image.png

    3.选择要导出的表


    image.png

    相关文章

      网友评论

          本文标题:Data Warehouse(1)

          本文链接:https://www.haomeiwen.com/subject/aaesldtx.html