Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Tavsiye
Teradata, 1980'lerde MPP kullanarak büyük ölçekli SQL veritabanlarına öncülük etti.
1984'te Teradata başlangıçta veritabanı ürününü piyasaya çıkardı. Veri işlemeyi o sırada mevcut ana bilgisayar teknolojilerinden daha verimli bir ölçekte etkinleştirmek için yüksek düzeyde paralel işleme (MPP) teknikleri kullanıma sunulmuştur. 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 kullanıyordu ve genellikle IBM veya IBM uyumlu işlemciler olmak üzere ana bilgisayarlara kanal aracılığıyla bağlıydı.
Daha yeni duyurular ağ bağlantısını ve Teradata teknoloji yığınının bulutta kullanılabilirliğini (Azure dahil) içerse de, mevcut yüklemelerin çoğu şirket içindedir, bu nedenle birçok kullanıcı Teradata verilerinin bir kısmını veya tamamını modern bir bulut ortamına taşımanın avantajlarından yararlanmak için Azure Synapse Analytics'e geçirmeyi düşünmektedir.
Tavsiye
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. Tek tek departmanlar için veri reyonlarının uygulanması gibi boyutsal veri modelleri (yıldız veya kar tanesi şemaları) yaygın olarak görülür.
Sql ve boyutlu veri modellerinin bu birleşimi, temel kavramlar ve SQL becerileri aktarılabilir olduğundan Azure Synapse'e geçişi basitleştirir. Önerilen yaklaşım, riski ve geçen süreyi azaltmak için mevcut veri modeli as-is'ı taşımaktır. Nihai amaç veri modelinde değişiklik yapmak ise (örneğin, bir veri kasası modeline geçiş), mevcut haliyle ilk geçişi gerçekleştirin ve ardından Azure bulut ortamında değişiklikler yaparak buradaki performans, esnek ölçeklenebilirlik ve maliyet avantajlarından yararlanın.
SQL dili standartlaştırılmış olsa da, tek tek satıcılar bazı durumlarda özel uzantılar uygulamıştır. Bu belge, eski bir Teradata ortamından geçiş yaparken karşılaşabileceğiniz olası SQL farklılıklarını vurgular ve geçici çözümler sağlar.
Geçişin bir parçası olarak Azure VM Teradata örneği kullanma
Tavsiye
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, Hedef Azure Synapse ortamıyla birlikte bulunan Azure'daki bir VM içinde Teradata örneği oluşturmak için uygun fiyatlı bulut depolama alanı ve elastik ö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ı sorunlar 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'yi kullanma
Tavsiye
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, geçişin mevcut Teradata ortamı üzerindeki etkisini de en aza indirir ve bu da zaten 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 bulutta veri odaklı iş akışlarının 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 Pipelines'i de kullanabilirsiniz.
Teradata ile Azure Synapse arasındaki SQL DDL farkları
SQL Veri Tanımı Dili (DDL)
Tavsiye
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ı, CREATE TABLE ve CREATE VIEW gibi DDL komutları için 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'e geçiş sırasında dikkate alınacak Teradata'ya özgü seçenekler açıklanmaktadır.
Tablo düşünceleri
Tavsiye
Taşınan depoda indeksleme 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 verileri 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 MULTISET seçeneğinin CREATE TABLE eşdeğeri 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
Tavsiye
Azure Synapse içindeki standart tablolar, taşınmış Teradata zaman serisi tabloları ve zamana bağlı tabloları destekleyebilir.
Teradata, zaman serisi ve zamansal veriler için özel tablo türleri için destek içerir. Bu tablo türlerinin söz dizimi ve bazı işlevleri Azure Synapse'te 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 bir zamana bağlı sorguya ek filtreler eklemek için sorgu yeniden yazma yoluyla geçici sorgu işlevini uygular. Bu işlev şu anda kaynak Teradata ortamında kullanılıyorsa ve geçirilecekse, bu ek filtrelemenin ilgili zamana bağlı sorgulara eklenmesi gerekir.
Desteklenmeyen Teradata veri türleri
Tavsiye
Hazırlık aşamasının bir parçası olarak desteklenmeyen veri türlerinin etkisini değerlendirin.
Çoğu Teradata veri türünün Azure Synapse'te doğrudan eşdeğeri vardır. Aşağıdaki tabloda, önerilen eşlemeyle birlikte Azure Synapse'te desteklenmeyen Teradata veri türleri gösterilmektedir. Tabloda, Teradata sütun türü, sistem kataloğunda depolanan türdür; örneğin DBC.ColumnsV içinde.
| Teradata sütun türü | Teradata veri türü | Azure Synapse veri türü |
|---|---|---|
| ++ | TD_ANYTYPE | Azure Synapse'te desteklenmez |
| A1 | ARRAY | Azure Synapse'te desteklenmez |
| AN | ARRAY | Azure Synapse'te desteklenmez |
| AT | ZAMAN | ZAMAN |
| BF | BYTE | BINARY |
| BO | BLOB | BLOB veri türü doğrudan desteklenmez, ancak BINARY ile değiştirilebilir. |
| BV | VARBYTE | BINARY |
| CF | VARCHAR | CHAR |
| Karbon Monoksit | CLOB | CLOB veri türü doğrudan desteklenmez ancak VARCHAR ile değiştirilebilir. |
| Özgeçmiş | VARCHAR | VARCHAR |
| D | DECIMAL | DECIMAL |
| DA | TARİH | TARİH |
| DH | GÜN VE SAAT ARALIĞI | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| DM | GÜNDEN DAKİKAYA ARALIK | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| DS | ARALıK GÜNÜ - SANIYE | INTERVAL veri türleri Azure Synapse'te 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'te desteklenir. |
| DY | ARA GÜNÜ | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| F | yüzmek | yüzmek |
| HM | SAAT İLE DAKİKA ARASINDAKİ ARALIK | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| İnsan Kaynakları | ARALIK SAAT | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| HS | SAAT İLE SANİYE ARASI ARALIK | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| I1 | BYTEINT | TINYINT |
| I2 | SMALLINT | SMALLINT |
| I8 | BIGINT | BIGINT |
| I | INTEGER | INT |
| JN | JSON | JSON veri türü şu anda Azure Synapse içinde doğrudan desteklenmemektedir, ancak JSON verileri bir VARCHAR alanında depolanabilir. |
| MI | ARALIK DAKİKA | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| MO | INTERVAL MONTH | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| MS | ARALIK DAKİkADAN SANİYEYE | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| N | NUMBER | NUMERIC |
| PD | DÖNEM(TARİh) | VARCHAR'a dönüştürülebilir veya iki ayrı tarihe ayrılabilir |
| PM | NOKTA (SAAT DILIMI ILE ZAMAN DAMGASı) | VARCHAR'a dönüştürülebilir veya iki ayrı zaman damgasına ayrılabilir (DATETIMEOFFSET) |
| PS | PERİYOD(ZAMAN DAMGASI) | VARCHAR'a dönüştürülebilir veya iki ayrı zaman damgasına ayrılabilir (DATETIMEOFFSET) |
| PT | DÖNEM(SAAT) | VARCHAR'a dönüştürülebilir veya iki ayrı zaman dilimine ayrılabilir |
| PZ | DÖNEM (ZAMAN DİLİMİYLE BİRLİKTE ZAMAN) | VARCHAR'a dönüştürülebilir veya iki ayrı zamana ayrılabilir, ancak SAAT DILIMI ile zaman dilimi desteklenmez |
| SC | SANIYELİK ARALIK | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| SZ | SAAT DILIMI ILE ZAMAN DAMGASı | DATETIMEOFFSET |
| TS | TIMESTAMP | DATETIME veya DATETIME2 |
| TZ | ZAMAN VE ZAMAN DİLİMİ | TIME WITH TIME ZONE, yalnızca zaman dilimi farkı olmadan "duvar saati" kullanılarak depolandığı için desteklenmez. |
| XM | XML | XML veri türü şu anda Azure Synapse içinde doğrudan desteklenmemektedir, ancak XML verileri VARCHAR alanında depolanabilir. |
| YM | YILDAN AYA ARALIK | INTERVAL veri türleri Azure Synapse'te desteklenmez, ancak tarih hesaplamaları tarih karşılaştırma işlevleriyle (örneğin DATEDIFF ve DATEADD) yapılabilir. |
| YR | YIL ARALIĞI | INTERVAL veri türleri Azure Synapse'te 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, desteklenmeyen veri türlerinin dikkat gerektiren 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;
Tavsiye
Üçü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
Tavsiye
Azure Synapse'in CREATE TABLE ve CREATE VIEW DDL oluşturma işlemini otomatikleştirmek için mevcut Teradata meta verilerini kullanın.
Gerekirse 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. Genellikle bu, FALLBACK veya MULTISET gibi 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 bu bilgilerin en iyi kaynağıdır. Kullanıcı tarafından korunan belgelerin geçerli tablo tanımlarıyla eşitlenmeyebileceğini unutmayın.
Gibi DBC.ColumnsV katalogdaki görünümler aracılığıyla bu bilgilere erişin ve Azure Synapse'teki eşdeğer tablolar için eşdeğer CREATE TABLE DDL deyimlerini oluşturun.
Tavsiye
Üçüncü taraf araçlar ve hizmetler veri eşleme görevlerini otomatikleştirebilir.
Veri türü eşlemesi de 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 farkları
SQL Veri İşleme Dili (DML)
Tavsiye
SQL DML komutları SELECT, INSERTve UPDATE standart temel öğeleri vardır, ancak farklı söz dizimi seçenekleri de uygulayabilir.
ANSI SQL standardı, , , SELECTINSERTve UPDATEgibi DELETEDML komutları için 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'e geçiş sırasında dikkate almanız gereken Teradata'ya özgü DML komutları açıklanmaktadı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: TeradataQUALIFYişlecini destekler. Örneğin: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,
DATEADDveyaDATEDIFFalanlarında kullanılabilecekDATEveDATETIMEgibi işleçlere sahiptir. Teradata,SELECT DATE1 - DATE2 FROM...gibi tarihler üzerinde doğrudan çıkarmayı destekler.GROUP BYordinal bağlamında, 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'te 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
Tavsiye
Olası geçiş sorunlarını bulmak için mevcut sistem sorgu günlüklerinden gerçek sorguları kullanın.
Eski Teradata SQL'i Azure Synapse ile 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'te "like-for-like" geçirilen veri modeli varsayılarak) bu EXPLAIN deyimleri Azure Synapse'de çalıştırmaktır. Uyumsuz tüm SQL'ler hata oluşturur; bu bilgileri kullanarak yeniden 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
Tavsiye
Hazırlık aşamasının bir parçası olarak taşınmakta 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şlemek için yöntemleri tanımlayın. Ardından proje planında uygun bir kaynak tahsisi yapın.
Azure ortamında, Teradata ortamında işlevler veya saklı yordamlar olarak uygulanan işlevselliğin yerini alan olanaklar olabilir. Bu durumda, Teradata işlevlerini yeniden kodlamak yerine yerleşik Azure olanaklarını kullanmak genellikle daha verimlidir.
Tavsiye
Üçü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 yaygın sistem işlevleri kullanılabilir ve değişiklik olmadan 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.
Saklanan prosedürler
Ç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 kodlarsınız.
Tetikleyiciler
Azure Synapse tetikleyicilerin oluşturulmasını desteklemez, ancak bunları Azure Data Factory'de uygulayabilirsiniz.
Sekanslar
Azure Synapse dizileri, vekil anahtarları veya yönetilen kimlikleri oluşturmak için IDENTITY kullanılarak Teradata'ya benzer şekilde işlenir.
Teradata-T-SQL eşlemesi
Bu tabloda, Azure Synapse SQL veri türü eşlemesiyle uyumlu Teradata ile T-SQL arasında aşağıdakiler gösterilir:
| Teradata Veri Türü | Azure Synapse SQL Veri Türü |
|---|---|
| bigint | bigint |
| bool | bit |
| boolean | bit |
| byteint | tinyint |
| char [(p)] | char [(p)] |
| karakter değişken [(p)] | varchar [(p)] |
| karakter [(p)] | char [(p)] |
| değişken karakter [(p)] | varchar [(p)] |
| tarih | tarih |
| tarih ve saat | tarih/zaman |
| dec [(p[,s])] | ondalık [(p[,s])] |
| ondalık [(p[,s])] | ondalık [(p[,s)]) |
| double | float(53) |
| çift hassasiyet | float(53) |
| float [(p)] | float [(p)] |
| float4 | float(53) |
| float8 | float(53) |
| int | int |
| int1 | tinyint |
| int2 | smallint |
| int4 | int |
| int8 | bigint |
| integer | tamsayı |
| aralık | Desteklenmiyor |
| national karakter çeşitlenen [(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)] |
| gerçek | gerçek |
| smallint | smallint |
| time | time |
| saat dilimi bilgisini içeren zaman | datetimeoffset |
| saat dilimi olmayan zaman | time |
| zaman aralığı | Desteklenmiyor |
| timestamp | datetime2 |
| timetz | datetimeoffset |
| varchar [(p)] | varchar [(p)] |
Özet
Tipik eski Teradata yüklemeleri, Azure Synapse'e geçişi kolaylaştıracak şekilde uygulanır. Sql'i büyük veri hacimlerindeki analitik sorgular için kullanır ve bir tür boyutlu veri modelindedir. Bu faktörler, Azure Synapse'e 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:
Son durumda farklı bir veri modeli, örneğin data vault, olsa bile riski ve süreyi en aza indirmek için veri ambarının ilk geçişi mevcut haliyle yapılmalıdır.
Geçiş işleminin bir parçası olarak Azure VM'de 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: Azure Synapse Analytics'e Teradata veri ambarı geçişi için araçlar.