Aracılığıyla paylaş


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 VIEWgibi 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 MULTISETgibi 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 SELECTINSERTstandart temel öğeleri vardır, ancak farklı söz dizimi seçenekleri de uygulayabilir.

ANSI SQL standardı, , , INSERTUPDATEve DELETEgibi SELECTDML 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şlecini QUALIFY 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ılabilecek DATE ve DATEDIFF gibi DATEADD işleçler vardır. Teradata, örneğin tarihlerde doğrudan çıkarmayı destekler SELECT 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 destekler LIKE 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ı.