Migracja danych – konwersja typów danych z MS SQL Server do Teradata

Migracja danych – konwersja typów danych z MS SQL Server do Teradata

Migracja danych między dwoma różnymi systemami baz danych zawsze wiąże się z konwersją typów danych. W tym poście przybliżę pojęcie migracji danych oraz pokażę jak zamienić typy danych z Microsoft SQL Server na typy danych bazy Teradata.

Migracja danych

Migracja danych to nic innego jak jednorazowe przeniesienie danych z jednego systemu informatycznego, bazy danych do innego repozytorium. Zazwyczaj jest to podróż w jedną stronę, angażuje wiele działów przedsiębiorstwa oraz pociąga za sobą wygaszenie dotychczasowego systemu bazy danych.

Migracje zbiorów danych do nowych baz zawsze są wynikiem wymagań stawianych wobec obecnych systemów informatycznych. Zmiana ma zapewnić większą wydajność zapytań, łatwiejszą skalowalność systemu oraz sprawniejsze zarządzenie zbiorami danych.

Typy danych Teradata

Każdy atrybut tabeli powiązany jest z konkretnym typem danych określającym jakie wartości będę w nim przechowywane.

Poniższa tabela przedstawia najczęściej pojawiające się typy danych w bazie Teradata wraz z ich rozmiarem i zakresem wartości:

Typ danychRozmiar (byte)Zakres wartości
BYTEINT1-128 – +127
SMALLINT2-32768 – +32767
INTEGER4-2 147 483 648 – +2 147 483 647
BIGINT8-9 233 372 036 854 775 808 – +9 233 372 036 854 775 807
DECIMAL (m,n)1-16
NUMERIC1-16
FLOAT8
CHAR (x)zmienny1 – 64 000
VARCHAR (x)zmienny1 – 64 000
DATE4yyyymmdd
TIME6 lub 8hh:mm:ss[.ssssss]
TIMESTAMP10 lub 12yyyy-mm-dd hh:mm:ss

Od SQL Server do Teradaty

Typy danych w poszczególnych systemach informatycznych praktycznie zawsze się różnią – jedne są bardziej szczegółowe pozwalając na dokładniejsze sprecyzowanie atrybutu jak MONEY, a inne bardziej ogólne jak DECIMAL. Najważniejsze, to dobrać odpowiedni typ danych z odpowiednim rozmiarem.

Konwertując typy danych między bazami danych zawsze pamiętaj o :

  1.  Dla danych alfanumerycznych zawsze sprawdzaj maksymalna długość pola i staraj się dobierać długość mając na uwadze dane, które pojawić się w przyszłości
  2. Dla danych numerycznych zawsze sprawdź najmniejszą i największą wartość atrybutu
  3. Jeśli precyzja (n) dla atrybutu DECIMAL wynosi 0 rozważ zastosowanie BYTEINT, SMALLINT, INTEGER albo BIGINT w zależności od maksymalnych wartości atrybutu
  4. Do flag typu 0 lub 1 zawsze stosuj najmniejszy możliwy typ danych – BYTEINT
  5. Określając typ danych dla tego samego atrybutu w różnych tabelach zawsze stosuj ten sam typ danych i ta samą precyzję (zwłaszcza jeśli atrybut jest wykorzystywany w złączeniach tabel)

Poniższa tabela przedstawia konwersję typów danych dla najpopularniejszych typów danych bazy SQL Server:

Typ danych SQL ServerTyp danych TeradataUwagi
BITBYTEINT
TINYINTSMALLINTjeśli wszystkie wartości są poniżej 127, użyj BYTEINT
SMALLINTSMALLINT
INTEGERINTEGER
BIGINTBIGINT
DECIMALDECIMALjeśli precyzja wynosi 0, np. DECIMAL(3,0) rozważ BYTEINT – BIGINT
NUMERICDECIMAL
MONEYDECIMAL
SMALLMONEYDECIMAL
FLOATDECIMAL
REALDECIMAL
DATEDATE
DATETIMETIMESTAMP
SMALLDATETIMETIMESTAMP
CHAR (x)CHAR (x)
VARCHAR (x)VARCHAR (x)

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej oraz udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

0 0 vote
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments