Teradata geçişleri için SQL sorunlarını en aza indirme
Bu makale, Teradata'dan Azure Synapse Analytics'e geçiş konusunda rehberlik sağlayan yedi bölümden oluşan serinin beşinci bölümüdür. Bu makalenin odak noktası, SQL sorunlarını en aza indirmek için en iyi yöntemlerdir.
Genel Bakış
Teradata ortamlarının özellikleri
İpucu
Teradata, 1980'lerde MPP kullanarak büyük ölçekli SQL veritabanlarına öncülük etti.
1984'te Teradata ilk olarak veritabanı ürününü piyasaya çıkardı. O sırada mevcut ana bilgisayar teknolojilerinden daha verimli bir ölçekte veri işlemeyi etkinleştirmek için yüksek düzeyde paralel işleme (MPP) tekniklerini kullanıma sunmuyorum. O zamandan beri ürün gelişti ve büyük finans kurumları, telekomünikasyon ve perakende şirketleri arasında birçok kuruluma sahip. Özgün uygulama özel donanım kullandı ve genellikle IBM veya IBM uyumlu işlemciler olmak üzere ana bilgisayarlara bağlı kanaldı.
Daha yeni duyurular ağ bağlantısını ve Teradata teknoloji yığınının bulutta (Azure dahil) kullanılabilirliğini içerse de, mevcut yüklemelerin çoğu şirket içindedir, bu nedenle birçok kullanıcı modern bir bulut ortamına geçişin avantajlarından yararlanmak için Teradata verilerinin bir kısmını veya tamamını Azure Synapse Analytics'e geçirmeyi düşünmektedir.
İpucu
Mevcut Teradata yüklemelerinin çoğu, boyutsal veri modeli kullanan veri ambarlarıdır.
Teradata teknolojisi genellikle SQL kullanan büyük veri hacimlerinde karmaşık analiz sorgularını destekleyen bir veri ambarı uygulamak için kullanılır. Boyutsal veri modelleri (yıldız veya kar tanesi şemaları) tek tek departmanlar için veri reyonlarının uygulanması gibi yaygın bir durumdur.
Sql ve boyutlu veri modellerinin bu birleşimi, temel kavramlar ve SQL becerileri aktarılabilir olduğundan Azure Synapse geçişi basitleştirir. Önerilen yaklaşım, riski ve geçen süreyi azaltmak için mevcut veri modelini olduğu gibi geçirmektir. Nihai amaç veri modelinde değişiklik yapmak (örneğin, bir veri kasası modeline geçmek) olsa bile, burada performans, elastik ölçeklenebilirlik ve maliyet avantajlarından yararlanarak başlangıçta olduğu gibi bir geçiş gerçekleştirin ve ardından Azure bulut ortamında değişiklikler yapın.
SQL dili standartlaştırılmış olsa da, tek tek satıcılar bazı durumlarda özel uzantılar uygulamıştır. Bu belgede, eski bir Teradata ortamından geçiş yaparken karşılaşabileceğiniz olası SQL farklılıkları vurgulanır ve geçici çözümler sağlanır.
Geçişin bir parçası olarak Azure VM Teradata örneği kullanma
İpucu
Geçişi hızlandırmak ve kaynak sistem üzerindeki etkiyi en aza indirmek için geçici bir Teradata örneği oluşturmak için Azure VM kullanın.
Şirket içi Teradata ortamından geçiş çalıştırırken Azure ortamından yararlanın. Azure, Azure'da hedef Azure Synapse ortamıyla birlikte bulunan bir VM içinde Teradata örneği oluşturmak için uygun fiyatlı bulut depolama alanı ve esnek ölçeklenebilirlik sağlar.
Bu yaklaşımla, Teradata Parallel Data Transporter (veya Attunity Replicate gibi üçüncü taraf veri çoğaltma araçları) gibi standart Teradata yardımcı programları, VM örneğine geçirilecek Teradata tablolarının alt kümesini verimli bir şekilde taşımak için kullanılabilir ve ardından tüm geçiş görevleri Azure ortamında gerçekleştirilebilir. Bu yaklaşımın çeşitli avantajları vardır:
Verilerin ilk çoğaltıldıktan sonra, kaynak sistem geçiş görevlerinden etkilenmez.
Tanıdık Teradata arabirimleri, araçları ve yardımcı programları Azure ortamında kullanılabilir.
Azure ortamına girdikten sonra, şirket içi kaynak sistemi ile bulut hedef sistemi arasında ağ bant genişliği kullanılabilirliğiyle ilgili olası bir sorun yoktur.
Azure Data Factory gibi araçlar, verileri hızlı ve kolay bir şekilde geçirmek için Teradata Parallel Transporter gibi yardımcı programları verimli bir şekilde çağırabilir.
Geçiş işlemi tamamen Azure ortamında düzenlenip denetlenmektedir.
Meta veri temelli geçiş uygulamak için Azure Data Factory kullanma
İpucu
Azure Data Factory özelliklerini kullanarak geçiş işlemini otomatikleştirin.
Azure ortamındaki özelliklerden yararlanarak geçiş işlemini otomatikleştirin ve ayarlayın. Bu yaklaşım ayrıca geçişin mevcut Teradata ortamı üzerindeki etkisini de en aza indirir ve tam kapasiteye yakın çalışıyor olabilir.
Azure Data Factory, veri taşımayı ve veri dönüştürmeyi düzenlemeye ve otomatikleştirmeye yönelik olarak bulutta veri odaklı iş akışları oluşturulmasına olanak tanıyan bulut tabanlı bir veri tümleştirme hizmetidir. Data Factory'yi kullanarak, farklı veri depolarından veri alabilen işlem hatları olarak adlandırılan veri temelli iş akışları oluşturabilir ve zamanlayabilirsiniz. Azure HDInsight Hadoop, Spark, Azure Data Lake Analytics ve Azure Machine Learning gibi işlem hizmetlerini kullanarak verileri işleyebilir ve dönüştürebilir.
Geçirilecek veri tablolarını ve konumlarını listelemek için meta veriler oluşturarak, geçiş işleminin bölümlerini yönetmek ve otomatikleştirmek için Data Factory olanaklarını kullanabilirsiniz. Azure Synapse İşlem Hatlarını da kullanabilirsiniz.
Teradata ile Azure Synapse arasındaki SQL DDL farkları
SQL Veri Tanımı Dili (DDL)
İpucu
SQL DDL komutları CREATE TABLE
ve CREATE VIEW
standart temel öğeleri vardır, ancak uygulamaya özgü seçenekleri tanımlamak için de kullanılır.
ANSI SQL standardı ve CREATE VIEW
gibi CREATE TABLE
DDL komutlarının temel söz dizimini tanımlar. Bu komutlar hem Teradata hem de Azure Synapse içinde kullanılır, ancak dizin oluşturma, tablo dağıtımı ve bölümleme seçenekleri gibi uygulamaya özgü özelliklerin tanımlanmasına izin verecek şekilde genişletilmiştir.
Aşağıdaki bölümlerde, Azure Synapse geçiş sırasında dikkate alınacak Teradata'ya özgü seçenekler açıklanmıştır.
Tabloda dikkat edilmesi gerekenler
İpucu
Geçirilen ambarda dizin oluşturma adaylarının göstergesini vermek için mevcut dizinleri kullanın.
Tabloları farklı teknolojiler arasında geçirirken, yalnızca ham veriler ve açıklayıcı meta veriler iki ortam arasında fiziksel olarak taşınır. Kaynak sistemdeki dizinler ve günlük dosyaları gibi diğer veritabanı öğeleri doğrudan geçirilmez çünkü bunlar gerekli olmayabilir veya yeni hedef ortamda farklı şekilde uygulanabilir. Örneğin, Teradata söz diziminde seçeneğin MULTISET
eşdeğeri CREATE TABLE
yoktur.
Dizinler gibi performans iyileştirmelerinin kaynak ortamda nerede kullanıldığını anlamak önemlidir. Bu, performans iyileştirmesinin yeni hedef ortama nereye eklenebileceğini gösterir. Örneğin, kaynak Teradata ortamında benzersiz olmayan bir ikincil dizin (NUSI) oluşturulduysa, bu, geçirilen Azure Synapse veritabanında kümelenmemiş bir dizinin oluşturulması gerektiğini gösterebilir. Tablo çoğaltma gibi diğer yerel performans iyileştirme teknikleri, düz bir "like-for-like" dizin oluşturma işleminden daha uygulanabilir olabilir.
Desteklenmeyen Teradata tablo türleri
İpucu
Azure Synapse içindeki standart tablolar geçirilen Teradata zaman serisini ve zamana bağlı tabloları destekleyebilir.
Teradata, zaman serisi ve zamana bağlı veriler için özel tablo türlerine yönelik destek içerir. Söz dizimi ve bu tablo türlerinin bazı işlevleri Azure Synapse içinde doğrudan desteklenmez, ancak veriler uygun veri türleri ve tarih/saat sütununda dizin oluşturma veya bölümleme içeren standart bir tabloya geçirilebilir.
Teradata, geçerli tarih aralığını sınırlamak için geçici bir sorguya ek filtreler eklemek üzere sorgu yeniden yazma yoluyla geçici sorgu işlevselliğini uygular. Bu işlevsellik şu anda kaynak Teradata ortamında kullanılıyorsa ve geçirilecekse, bu ek filtrelemenin ilgili zamana bağlı sorgulara eklenmesi gerekir.
Azure ortamı, zaman serisi içgörüleri olarak adlandırılan büyük ölçekteki zaman serisi verileri üzerinde karmaşık analize yönelik belirli özellikler de içerir. Bu, IoT veri analizi uygulamalarına yöneliktir ve bu kullanım örneği için daha uygun olabilir.
Desteklenmeyen Teradata veri türleri
İpucu
Desteklenmeyen veri türlerinin etkisini hazırlık aşamasının bir parçası olarak değerlendirin.
Çoğu Teradata veri türünün Azure Synapse'de doğrudan eşdeğeri vardır. Aşağıdaki tabloda, önerilen eşlemeyle birlikte Azure Synapse'de desteklenmeyen Teradata veri türleri gösterilmektedir. Tabloda, Teradata sütun türü sistem kataloğunda depolanan türdür; örneğin, içinde DBC.ColumnsV
.
Teradata sütun türü | Teradata veri türü | veri türünü Azure Synapse |
---|---|---|
++ | TD_ANYTYPE | Azure Synapse'de desteklenmez |
A1 | DİZİ | Azure Synapse'de desteklenmez |
BİR | DİZİ | Azure Synapse'de desteklenmez |
AT | TIME | TIME |
BF | BYTE | IKİLİ |
BO | BLOB | BLOB veri türü doğrudan desteklenmez ancak BINARY ile değiştirilebilir. |
BV | VARBYTE | IKİLİ |
CF | VARCHAR | CHAR |
CO | CLOB | CLOB veri türü doğrudan desteklenmez, ancak VARCHAR ile değiştirilebilir. |
CV | VARCHAR | VARCHAR |
D | ON -DA -LIK | ON -DA -LIK |
SAVCI | DATE | DATE |
DH | ARALıK GÜNÜ- SAAT | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
DM | ARALıK GÜNÜ- DAKIKA | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
DS | ARALıK GÜNÜ ILE SANIYE | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
DT | DATASET | DATASET veri türü Azure Synapse desteklenir. |
DY | ARALIK GÜNÜ | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
F | FLOAT | FLOAT |
HM | INTERVAL HOUR TO MINUTE | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
HR | INTERVAL HOUR | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
HS | INTERVAL HOUR TO SECOND | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
I1 | BYTEINT | TİNYİNT |
I2 | SMALLİNT | SMALLİNT |
I8 | BİGİNT | BİGİNT |
I | TAMSAYI | INT |
JN | JSON | JSON veri türü şu anda Azure Synapse içinde doğrudan desteklenmemektedir, ancak JSON verileri VARCHAR alanında depolanabilir. |
MI | DAKİkA ARALIK | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
MO | ARALıK AY | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
MS | DAKIKA ILE SANIYE ARASıNDAKI ARALıK | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
N | NUMARASI | SAYISAL |
PD | DÖNEM(TARİh) | VARCHAR'a dönüştürülebilir veya iki ayrı tarihe ayrılabilir |
PM | DÖNEM (SAAT DILIMI ILE ZAMAN DAMGASı) | VARCHAR'a dönüştürülebilir veya iki ayrı zaman damgasına (DATETIMEOFFSET) bölünebilir |
PS | PERIOD(TIMESTAMP) | VARCHAR'a dönüştürülebilir veya iki ayrı zaman damgasına (DATETIMEOFFSET) bölünebilir |
PT | DÖNEM(SAAT) | VARCHAR'a dönüştürülebilir veya iki ayrı kez bölünebilir |
PZ | DÖNEM (SAAT DILIMI ILE SAAT) | VARCHAR'a dönüştürülebilir veya iki ayrı zamana bölünebilir, ancak ZAMAN DILIMI ile zaman dilimi desteklenmez |
SC | ARALIK SİSTESİ | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
SZ | SAAT DILIMI ILE ZAMAN DAMGASı | DATETİMEOFFSET |
TS | TIMESTAMP | DATETIME veya DATETIME2 |
TZ | SAAT DILIMI ILE SAAT | TIME WITH TIME with TIME desteklenmez çünkü TIME yalnızca bir saat dilimi uzaklığı olmadan "duvar saati" saati kullanılarak depolanır. |
XM | XML | XML veri türü şu anda Azure Synapse içinde doğrudan desteklenmemektedir, ancak XML verileri bir VARCHAR alanında depolanabilir. |
YM | YILDAN AYA ARALıK | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
YIL | INTERVAL YEAR | INTERVAL veri türleri Azure Synapse desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin, DATEDIFF ve DATEADD) yapılabilir. |
Bu veri türlerinden herhangi birinin geçirilip geçirilmeyeceğini belirlemek ve geçiş planında buna izin vermek için Teradata katalog tablolarındaki meta verileri kullanın. Örneğin, ilgilenmeniz gereken desteklenmeyen veri türlerinin oluşumlarını bulmak için bunun gibi bir SQL sorgusu kullanın.
SELECT
ColumnType, CASE
WHEN ColumnType = '++' THEN 'TD_ANYTYPE'
WHEN ColumnType = 'A1' THEN 'ARRAY' WHEN
ColumnType = 'AN' THEN 'ARRAY' WHEN
ColumnType = 'BO' THEN 'BLOB'
WHEN ColumnType = 'CO' THEN 'CLOB'
WHEN ColumnType = 'DH' THEN 'INTERVAL DAY TO HOUR' WHEN
ColumnType = 'DM' THEN 'INTERVAL DAY TO MINUTE' WHEN
ColumnType = 'DS' THEN 'INTERVAL DAY TO SECOND' WHEN
ColumnType = 'DT' THEN 'DATASET'
WHEN ColumnType = 'DY' THEN 'INTERVAL DAY'
WHEN ColumnType = 'HM' THEN 'INTERVAL HOUR TO MINUTE' WHEN
ColumnType = 'HR' THEN 'INTERVAL HOUR'
WHEN ColumnType = 'HS' THEN 'INTERVAL HOUR TO SECOND' WHEN
ColumnType = 'JN' THEN 'JSON'
WHEN ColumnType = 'MI' THEN 'INTERVAL MINUTE' WHEN
ColumnType = 'MO' THEN 'INTERVAL MONTH'
WHEN ColumnType = 'MS' THEN 'INTERVAL MINUTE TO SECOND' WHEN
ColumnType = 'PD' THEN 'PERIOD(DATE)'
WHEN ColumnType = 'PM' THEN 'PERIOD (TIMESTAMP WITH TIME ZONE)'
WHEN ColumnType = 'PS' THEN 'PERIOD(TIMESTAMP)' WHEN
ColumnType = 'PT' THEN 'PERIOD(TIME)'
WHEN ColumnType = 'PZ' THEN 'PERIOD (TIME WITH TIME ZONE)' WHEN
ColumnType = 'SC' THEN 'INTERVAL SECOND'
WHEN ColumnType = 'SZ' THEN 'TIMESTAMP WITH TIME ZONE' WHEN
ColumnType = 'XM' THEN 'XML'
WHEN ColumnType = 'YM' THEN 'INTERVAL YEAR TO MONTH' WHEN
ColumnType = 'YR' THEN 'INTERVAL YEAR'
END AS Data_Type,
COUNT (*) AS Data_Type_Count FROM
DBC.ColumnsV
WHERE DatabaseName IN ('UserDB1', 'UserDB2', 'UserDB3') -- select databases to be migrated
GROUP BY 1,2
ORDER BY 1;
İpucu
Üçüncü taraf araçlar ve hizmetler veri eşleme görevlerini otomatikleştirebilir.
Veri türlerinin eşlemesi de dahil olmak üzere geçişi otomatikleştirmek için araçlar ve hizmetler sunan üçüncü taraf satıcılar vardır. Informatica veya Talend gibi bir üçüncü taraf ETL aracı Teradata ortamında zaten kullanılıyorsa, bu araçlar gerekli veri dönüştürmelerini uygulayabilir.
Veri Tanımı Dili (DDL) oluşturma
İpucu
Azure Synapse için ve CREATE VIEW DDL
oluşturma CREATE TABLE
işlemini otomatikleştirmek için mevcut Teradata meta verilerini kullanın.
Gerektiğinde daha önce açıklandığı gibi değiştirilmiş veri türleriyle eşdeğer tanımlar oluşturmak için mevcut Teradata CREATE TABLE
ve CREATE VIEW
betikleri düzenleyin. Bu genellikle veya MULTISET
gibi FALLBACK
ek Teradata'ya özgü yan tümcelerin kaldırılmasını içerir.
Ancak, mevcut Teradata ortamındaki tabloların ve görünümlerin geçerli tanımlarını belirten tüm bilgiler sistem kataloğu tablolarında tutulur. Bu, güncel ve eksiksiz olması garanti edilen en iyi bilgi kaynağıdır. Kullanıcı tarafından tutulan belgelerin geçerli tablo tanımlarıyla eşitlenmeyebileceğini unutmayın.
Gibi DBC.ColumnsV
katalog üzerinde görünümler aracılığıyla bu bilgilere erişin ve Azure Synapse eşdeğer tablolar için eşdeğer CREATE TABLE
DDL deyimleri oluşturun.
İpucu
Üçüncü taraf araçlar ve hizmetler veri eşleme görevlerini otomatikleştirebilir.
Veri türü eşleme dahil olmak üzere geçişi otomatikleştirmek için araçlar ve hizmetler sunan Microsoft iş ortakları vardır. Ayrıca, Informatica veya Talend gibi bir üçüncü taraf ETL aracı Teradata ortamında zaten kullanılıyorsa, bu araç gerekli veri dönüştürmelerini uygulayabilir.
Teradata ile Azure Synapse arasındaki SQL DML farklılıkları
SQL Veri İşleme Dili (DML)
İpucu
, ve UPDATE
SQL DML komutlarının SELECT
INSERT
standart temel öğeleri vardır, ancak farklı söz dizimi seçenekleri de uygulayabilir.
ANSI SQL standardı, , , INSERT
UPDATE
ve DELETE
gibi SELECT
DML komutlarının temel söz dizimini tanımlar. Hem Teradata hem de Azure Synapse bu komutları kullanır, ancak bazı durumlarda uygulama farklılıkları vardır.
Aşağıdaki bölümlerde, Azure Synapse geçiş sırasında dikkate almanız gereken Teradata'ya özgü DML komutları açıklanmıştır.
SQL DML söz dizimi farklılıkları
Geçiş sırasında Teradata SQL ile Azure Synapse (T-SQL) arasındaki SQL Veri İşleme Dili (DML) söz dizimindeki bu farklılıklara dikkat edin:
QUALIFY
: Teradata işleciniQUALIFY
destekler. Örnek:SELECT col1 FROM tab1 WHERE col1='XYZ' QUALIFY ROW_NUMBER () OVER (PARTITION by col1 ORDER BY col1) = 1;
Eşdeğer Azure Synapse söz dizimi:
SELECT * FROM ( SELECT col1, ROW_NUMBER () OVER (PARTITION by col1 ORDER BY col1) rn FROM tab1 WHERE col1='XYZ' ) WHERE rn = 1;
Tarih aritmetiği: Azure Synapse veya
DATETIME
alanlarında kullanılabilecekDATE
veDATEDIFF
gibiDATEADD
işleçler vardır. Teradata, örneğin tarihlerde doğrudan çıkarmayı desteklerSELECT DATE1 - DATE2 FROM...
Sıralı
GROUP BY
olarak, T-SQL sütun adını açıkça belirtin.LIKE ANY
: Teradata aşağıdaki gibi söz dizimlerini desteklerLIKE ANY
:SELECT * FROM CUSTOMER WHERE POSTCODE LIKE ANY ('CV1%', 'CV2%', 'CV3%');
Azure Synapse söz dizimindeki eşdeğeri:
SELECT * FROM CUSTOMER WHERE (POSTCODE LIKE 'CV1%') OR (POSTCODE LIKE 'CV2%') OR (POSTCODE LIKE 'CV3%');
Sistem ayarlarına bağlı olarak, Teradata'daki karakter karşılaştırmaları varsayılan olarak büyük/küçük harfe duyarsız olabilir. Azure Synapse karakter karşılaştırmaları her zaman büyük/küçük harfe duyarlıdır.
Eski SQL'i doğrulamak için EXPLAIN kullanma
İpucu
Olası geçiş sorunlarını bulmak için mevcut sistem sorgu günlüklerindeki gerçek sorguları kullanın.
Eski Teradata SQL'i Azure Synapse uyumluluk açısından test etmenin bir yolu, eski sistem sorgu günlüklerinden bazı temsili SQL deyimlerini yakalamak, bu sorgulara EXPLAIN ön eki uygulamak ve (aynı tablo ve sütun adlarıyla Azure Synapse geçirilen veri modelinin "benzer" olduğu varsayılarak) bu EXPLAIN
deyimleri Azure Synapse çalıştırmaktır. Uyumsuz herhangi bir SQL hata oluşturur; bu bilgileri kullanarak kodlama görevinin ölçeğini belirleyin. Bu yaklaşım, verilerin Azure ortamına yüklenmesini gerektirmez, yalnızca ilgili tablo ve görünümlerin oluşturulmasını gerektirir.
İşlevler, saklı yordamlar, tetikleyiciler ve diziler
İpucu
Hazırlık aşamasının bir parçası olarak, geçirilmekte olan veri olmayan nesnelerin sayısını ve türünü değerlendirin.
Teradata gibi olgun bir eski veri ambarı ortamından geçiş yaparken, genellikle yeni hedef ortama geçirilmesi gereken basit tablolar ve görünümler dışında öğeler vardır. Buna örnek olarak işlevler, saklı yordamlar, tetikleyiciler ve diziler verilebilir.
Hazırlık aşamasının bir parçası olarak, geçirilmesi gereken nesnelerin envanterini oluşturun ve bunları işleme yöntemlerini tanımlayın. Ardından proje planında uygun kaynak ayırmasını atayın.
Azure ortamında, Teradata ortamında işlev veya saklı yordam olarak uygulanan işlevlerin yerini alan tesisler olabilir. Bu durumda, Teradata işlevlerini yeniden kodlamak yerine yerleşik Azure tesislerini kullanmak genellikle daha verimlidir.
İpucu
Üçüncü taraf ürünler ve hizmetler, veri olmayan öğelerin geçişini otomatikleştirebilir.
Microsoft iş ortakları , geçişi otomatikleştirebilecek araçlar ve hizmetler sunar.
Bu öğelerin her biri hakkında daha fazla bilgi için aşağıdaki bölümlere bakın.
İşlevler
Çoğu veritabanı ürününde olduğu gibi Teradata da SQL uygulamasında sistem işlevlerini ve kullanıcı tanımlı işlevleri destekler. Azure Synapse gibi başka bir veritabanı platformuna geçiş yaparken, ortak sistem işlevleri kullanılabilir ve değişiklik yapılmadan geçirilebilir. Bazı sistem işlevlerinin söz dizimi biraz farklı olabilir, ancak gerekli değişiklikler otomatikleştirilebilir. Rastgele kullanıcı tanımlı işlevler gibi eşdeğeri olmayan sistem işlevlerinin hedef ortamda kullanılabilen diller kullanılarak yeniden kodlanması gerekebilir. Azure Synapse, kullanıcı tanımlı işlevleri uygulamak için popüler Transact-SQL dilini kullanır.
Saklı yordamlar
Çoğu modern veritabanı ürünü, yordamların veritabanında depolanmasını sağlar. Teradata bu amaçla SPL dilini sağlar. Saklı yordam genellikle SQL deyimlerini ve bazı yordam mantığını içerir ve veri veya durum döndürebilir.
Azure Synapse Analytics'in ayrılmış SQL havuzları T-SQL kullanarak saklı yordamları da destekler, bu nedenle saklı yordamları geçirmeniz gerekiyorsa bunları uygun şekilde yeniden kodlamalısınız.
Tetikleyiciler
Azure Synapse tetikleyicilerin oluşturulmasını desteklemez, ancak bunları Azure Data Factory içinde uygulayabilirsiniz.
Diziler
Azure Synapse dizileri Teradata'ya benzer şekilde işlenir ve yedek anahtarlar veya yönetilen kimlikoluşturmak için KİmLİk kullanılır.
Teradata-T-SQL eşlemesi
Bu tabloda, Azure Synapse SQL veri türü eşlemesiyle uyumlu Teradata-T-SQL gösterilmektedir:
Teradata Veri Türü | SQL Veri Türünü Azure Synapse |
---|---|
bigint | bigint |
bool | bit |
boolean | bit |
bayt | tinyint |
char [(p)] | char [(p)] |
char varying [(p)] | varchar [(p)] |
karakter [(p)] | char [(p)] |
değişen karakter [(p)] | varchar [(p)] |
date | date |
datetime | datetime |
dec [(p[,s])] | ondalık [(p[,s])] |
ondalık [(p[,s])] | ondalık [(p[,s])] |
double | float(53) |
çift duyarlık | float(53) |
float [(p)] | float [(p)] |
float4 | float(53) |
float8 | float(53) |
int | int |
int1 | tinyint |
int2 | smallint |
int4 | int |
int8 | bigint |
tamsayı | tamsayı |
interval | Desteklenmiyor |
national char varying [(p)] | nvarchar [(p)] |
ulusal karakter [(p)] | nchar [(p)] |
değişen ulusal karakter [(p)] | nvarchar [(p)] |
nchar [(p)] | nchar [(p)] |
sayısal [(p[,s])] | sayısal [(p[,s]) |
nvarchar [(p)] | nvarchar [(p)] |
real | real |
smallint | smallint |
time | time |
saat dilimi ile saat | Datetimeoffset |
saat dilimi olmayan saat | time |
timespan | Desteklenmiyor |
timestamp | datetime2 |
timetz | Datetimeoffset |
varchar [(p)] | varchar [(p)] |
Özet
Tipik eski Teradata yüklemeleri, Azure Synapse geçişi kolaylaştıracak şekilde uygulanır. Sql'i büyük veri hacimlerindeki analitik sorgular için kullanırlar ve bir tür boyutlu veri modeli içindedirler. Bu faktörler, Azure Synapse geçiş için iyi adaylar olmalarını sağlar.
Gerçek SQL kodunu geçirme görevini en aza indirmek için şu önerileri izleyin:
Nihai son ortam veri kasası gibi farklı bir veri modeli içerecek olsa bile, riski ve geçen süreyi en aza indirmek için veri ambarının ilk geçişi olduğu gibi olmalıdır.
Geçiş işleminin bir parçası olarak azure vm'sinde bir Teradata örneğini adımlama taşı olarak kullanmayı göz önünde bulundurun.
Teradata SQL uygulaması ile Azure Synapse arasındaki farkları anlayın.
Farkların etkisini değerlendirmek ve azaltmak için bir yaklaşım planlamak için mevcut Teradata uygulamasındaki meta verileri ve sorgu günlüklerini kullanın.
Geçişin hatalarını, riskini ve süresini en aza indirmek için mümkün olan her yerde işlemi otomatikleştirin.
Geçişi kolaylaştırmak için uzman Microsoft iş ortaklarını ve hizmetlerini kullanmayı göz önünde bulundurun.
Sonraki adımlar
Microsoft ve üçüncü taraf araçları hakkında daha fazla bilgi edinmek için bu serinin sonraki makalesine bakın: Teradata veri ambarı Azure Synapse Analytics'e geçiş araçları.