Data Warehouse(1)

2023-03-03  本文已影响0人  山猪打不过家猪

1.Data Warehouse 结构

2. Dedicated SQL pool

两种方式创建:

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

2.1 单独创建

  1. 创建服务器


    image.png
  2. 设置网络


    image.png

2.2创建synapse

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里

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

5.1 创建Blob Storage Account并添加文件

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

#1.生成master key
CREATE MASTER KEY
GO
CREATE DATABASE SCOPED CREDENTIAL BlobStorageCredential
WITH
    IDENTITY = 'blobuser',  
    SECRET = 'ZYfcNUnKJLRqDpZDwly1dUb8bsXe3NP8Ti4nLXCbd8jhYwEoWaBUohGN3cK4eQ0mCKr6WAEBAaUSQmY8b3hhzA=='   
;
GO
CREATE EXTERNAL DATA SOURCE AzureBlobStorage
WITH (
    TYPE = HADOOP,
    LOCATION = 'wasbs://demofiles@synapsestorage108.blob.core.windows.net',
    CREDENTIAL = BlobStorageCredential
);
GO

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

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

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里

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
DBCC PDW_SHOWSPACEUSED('prod.FactTransactionHistory');

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

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
上一篇下一篇

猜你喜欢

热点阅读