Город МОСКОВСКИЙ
00:24:44

Azure Synapse Tables Creation with Partitions, Distributions

Аватар
MySQL Марафон
Просмотры:
23
Дата загрузки:
08.12.2023 02:02
Длительность:
00:24:44
Категория:
Технологии и интернет

Описание

Azure Synapse Tables Creation with Partitions, Distributions

This videos guides us on Creating Tables with ColumnStore Indexes, Distributions and Partitions.

Ref: https://www.sqlschool.com/AzureSynapse-Online-Training.html
Ref: https://www.sqlschool.com/AzureSynapse-Video-Training.html

T-SQL Script used in the video:

-- QUERY #1: HOW TO CREATE BASIC TABLE?
create table SynapseTable1 (col1 int, Col2 int)


-- QUERY #2: HOW TO CREATE TABLE WITH A CONSTRAINT?
CREATE TABLE SynapseTable2
(
col1 int CONSTRAINT constraint_col1 DEFAULT 0,
col2 nvarchar COLLATE Frisian_100_CS_AS
)
;


-- QUERY #3: HOW TO CREATE TABLE WITH COLUMN STORE INDEX: INDEX THAT STORES UNIQUE VALUES OF A COLUMN
CREATE TABLE SynapseTable3
(
mycolumn1 nvarchar,
mycolumn2 nvarchar
)
WITH ( CLUSTERED COLUMNSTORE INDEX )
;

INSERT INTO SynapseTable3 DEFAULT VALUES -- ERROR; IT WILL NOT WORK

INSERT INTO SynapseTable3 VALUES (1,1)
INSERT INTO SynapseTable3 VALUES ('1','1')
INSERT INTO SynapseTable3 VALUES (NULL,1)
INSERT INTO SynapseTable3 VALUES ('A',1)
INSERT INTO SynapseTable3 VALUES (N'A','B')

SELECT * FROM SynapseTable3

SELECT * FROM SYS.INDEXES -- NOTE: SP_HELPINDEX WILL NOT WORK IN SYNAPSE
SELECT OBJECT_NAME(OBJECT_ID) AS TABLE_NAME, name as Index_NAME FROM SYS.INDEXES


-- VERIFY THE COLUMNS, CONSTRAINTS, INDEXES FROM THE OBJECT EXPLORER.
-- FOREIGN KEYS ARE NOT SUPPORTED IN SYNAPSE


-- QUERY #4: HOW TO CREATE ROUND ROBIN TABLE? CTAS : CREATE TABLE AS SELECT
CREATE TABLE SynapseTable4
WITH
(
DISTRIBUTION = ROUND_ROBIN
)
AS SELECT * FROM SynapseTable3
OPTION (MAXDOP 3); -- DOP : DEGREE OF PARALLELISM.
-- NUMBER OF OPERATIONS THAT CAN BE PERFORMED AT A TIME


-- QUERY #5: HOW TO CREATE HASH TABLE:
CREATE TABLE SynapseTable5
(
id int NOT NULL,
lastName varchar(20),
zipCode varchar(6)
)
WITH
(
DISTRIBUTION = HASH (id), -- RANGE IS ASSIGNED AUTOMATICALLY.
CLUSTERED COLUMNSTORE INDEX -- EXAMPLE: 1 TO 10 : DISTRIBUTION 1, 11 TO 20 : DISTRIBUTION 2
)
;



-- QUERY #6: HOW TO CREATE A TEMPORARY HASH TABLE:
CREATE TABLE #SynapseTable6
(
id int NOT NULL,
lastName varchar(20),
zipCode varchar(6)
)
WITH
(
DISTRIBUTION = HASH (id),
CLUSTERED COLUMNSTORE INDEX
)
;

-- QUERY #7: HOW TO CREATE A REPLICATED TABLE?
CREATE TABLE SynapseTable7
(
id int NOT NULL,
lastName varchar(20),
zipCode varchar(6)
)
WITH
(
DISTRIBUTION = REPLICATE,
CLUSTERED INDEX (lastName)
);

-- IF YOU ARE FROM SQL SERVER DEV OR ADMIN BACKGROUND: TRY "SORT_IN_TEMPDB" OPTION @ INDEX CREATIONS.

-- QUERY #8: HOW TO CREATE NEW TABLE FROM EXISTING TABLE? -- CTAS: CREATE TABLE AS SELECT
CREATE TABLE SynapseTable8
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED COLUMNSTORE INDEX -- SYNAPSE WILL DECIDE THE INDEXED COLUMN
)
AS
SELECT * FROM SynapseTable7


CREATE TABLE SynapseTable9
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED COLUMNSTORE INDEX ORDER(id)
)
AS
SELECT * FROM SynapseTable7

-- QUERY #9: HOW TO CREATE PARTITIONED TABLES?
CREATE TABLE SynapseTable10
(
id int NOT NULL,
lastName varchar(20),
zipCode int)
WITH
(
PARTITION ( id RANGE LEFT FOR VALUES (10, 20, 30, 40)), -- 5 PARTITION RANGES [P1: VALUES UPTO 10; P2: 11 TO 20; P3:21 TO 30..]
CLUSTERED COLUMNSTORE INDEX
)


CREATE TABLE SynapseTable11
(
id int NOT NULL,
lastName varchar(20),
zipCode int)
WITH
(
PARTITION ( id RANGE RIGHT FOR VALUES (10, 20, 30, 40 )), -- 5 PARTITION RANGES [P1: UPTO 9; P2: 10 TO 19; P3:20 TO 29..]
CLUSTERED COLUMNSTORE INDEX
)
;

CREATE TABLE SynapseTable12
(
id int NOT NULL,
lastName varchar(20),
zipCode int)
WITH
(
DISTRIBUTION = REPLICATE,
PARTITION ( id RANGE RIGHT FOR VALUES (10, 20, 30, 40 )), -- 5 PARTITION RANGES [P1: VALUES LESS THAN 10; P2: 10 TO 20; P3:20 TO 30..]
CLUSTERED COLUMNSTORE INDEX
)
;

Azure Synapse Tables Creation with Partitions, Distributions
with 100% Practice Oreinted Training From SQL School.
For project oriented training details, please visit: www.sqlschool.com
or call us on +91 9030040801 (24 x 7)

Рекомендуемые видео