Řešení a migrace Azure synapse Analytics pro NetezzaAzure Synapse Analytics solutions and migration for Netezza

Jelikož podpora IBM pro Netezza končí, mnoho organizací, které aktuálně používají systémy datového skladu Netezza, se pokouší využít inovativní Cloud, infrastrukturu jako službu a jako nabídky služeb v novějších prostředích, jako je Azure.As IBM support for Netezza ends, many organizations that currently use Netezza data warehouse systems are looking to take advantage of innovative cloud, infrastructure as a service, and platform as a service offerings in newer environments like Azure. Řada organizací je připravená na krok přesunu náročných úloh, jako je údržba infrastruktury a vývoj platforem, do poskytovatele cloudu.Many organizations are ready to take the step of shifting expensive tasks like infrastructure maintenance and platform development to a cloud provider.

Azure synapse Analytics je bezlimitní analytická služba, která přináší dohromady podnikové datové sklady a analýzu velkých objemů dat.Azure Synapse Analytics is a limitless analytics service that brings together enterprise data warehousing and big data analytics. Poskytuje vám volnost při dotazování na data na základě vašich podmínek pomocí serveru nebo prostředků zřízených na vyžádání bez serveru.It gives you the freedom to query data on your terms at scale by using either serverless on-demand or provisioned resources. Přečtěte si, co je potřeba naplánovat při migraci starší verze systému Netezza do Azure synapse.Learn what to plan for as you migrate a legacy Netezza system to Azure Synapse.

Netezza a Azure synapse jsou podobné v tom, že každá z nich je databáze SQL navržená tak, aby používala výkonné techniky paralelního zpracování, která umožňuje dosáhnout vysokého výkonu dotazů u velkých objemů dat.Netezza and Azure Synapse are similar in that each is a SQL database that's designed to use massively parallel processing techniques to achieve high query performance on large data volumes. Tyto dvě platformy se ale liší v klíčových aspektech:But the two platforms are different in key aspects:

  • Starší verze systémů Netezza jsou nainstalované místně a využívají proprietární hardware.Legacy Netezza systems are installed on-premises, and they use proprietary hardware. Služba Azure synapse je založená na cloudu a využívá výpočetní prostředky a prostředky úložiště Azure.Azure Synapse is cloud-based and uses Azure compute and storage resources.
  • Upgrade konfigurace Netezza je hlavní úlohou, která zahrnuje extra fyzický hardware a potenciálně zdlouhavou rekonfiguraci databáze nebo výpis paměti a opětovné načtení.Upgrading a Netezza configuration is a major task that involves extra physical hardware and a potentially lengthy database reconfiguration or dump and reload. Ve službě Azure synapse jsou prostředky úložiště a výpočetní prostředky oddělené.In Azure Synapse, storage and compute resources are separate. Můžete využít elastickou škálovatelnost Azure k nezávislému horizontálnímu navýšení kapacity směrem nahoru nebo dolů.You can use the elastic scalability of Azure to independently scale up or down.
  • Bez fyzického systému na podporu můžete službu Azure synapse pozastavit nebo změnit její velikost podle potřeby a snížit tak využití prostředků a náklady.Without a physical system to support, you can pause or resize Azure Synapse as needed to reduce resource utilization and cost. V Azure máte přístup k globálně dostupnému, vysoce bezpečnému a škálovatelnému cloudovém prostředí, které zahrnuje Azure synapse v ekosystému podpůrných nástrojů a schopností.In Azure, you have access to a globally available, highly secure, and scalable cloud environment that includes Azure Synapse in an ecosystem of supporting tools and capabilities.

V tomto článku se podíváme na migraci schématu a získáte přehled o tom, jak získat ekvivalentní nebo vyšší výkon migrovaných Netezza datových skladů a tržiště dat na Azure synapse.In this article, we look at schema migration, with a view to obtaining equivalent or increased performance of your migrated Netezza data warehouse and data marts on Azure Synapse. Zvažujeme obavy, které platí konkrétně pro migraci z existujícího prostředí Netezza.We consider concerns that apply specifically to migrating from an existing Netezza environment.

V rámci vysoké úrovně proces migrace zahrnuje kroky uvedené v následující tabulce:At a high level, the migration process includes the steps that are listed in the following table:

PřípravaPreparation MigraceMigration Po migraciPost-migration
  • Definovat obor: co chceme migrovat?Define scope: What do we want to migrate?
  • Sestavte inventář dat a procesů, které chcete migrovat.Build an inventory of data and processes to migrate.
  • Definujte libovolné změny datového modelu.Define any data model changes.
  • Identifikujte nejlepší funkce a nástroje pro Azure a třetí strany, které se mají použít.Identify the best Azure and third-party tools and features to use.
  • Vyškolit pracovníky na nové platformě na začátkuTrain staff early on the new platform.
  • Nastavte cílovou platformu Azure.Set up the Azure target platform.
  • Začněte malým a jednoduchým.Start small and simple.
  • Automatizujte, pokud je to možné.Automate where possible.
  • Pomocí integrovaných nástrojů a funkcí Azure můžete snížit úsilí při migraci.Use Azure built-in tools and features to reduce the migration effort.
  • Migruje metadata pro tabulky a zobrazení.Migrate metadata for tables and views.
  • Migrujte relevantní historická data.Migrate relevant historical data.
  • Migrujte nebo refaktorujte uložené procedury a obchodní procesy.Migrate or refactor stored procedures and business processes.
  • Migrujte nebo refaktorujte proces přírůstkového načítání ETL nebo ELT.Migrate or refactor ETL or ELT incremental load processes.
  • Sledujte a zdokumentujte všechny fáze procesu migrace.Monitor and document all stages of the migration process.
  • Využijte zkušenosti získané při vytváření šablony pro budoucí migrace.Use experience gained to build a template for future migrations.
  • V případě potřeby datový model, s využitím výkonu a škálovatelnosti nové platformy.Reengineer the data model, if necessary, by using the new platform's performance and scalability.
  • Testování aplikací a dotazovacích nástrojů.Test applications and query tools.
  • Srovnávací testy a optimalizace výkonu dotazů.Benchmark and optimize query performance.
  • Když migrujete z staršího prostředí Netezza do Azure synapse, musíte zvážit některé konkrétní faktory, kromě obecných témat popsaných v dokumentaci Netezza.When you migrate from a legacy Netezza environment to Azure Synapse, you must consider some specific factors, in addition to the more general subjects described in the Netezza documentation.

    Úlohy prvotní migraceInitial migration workload

    Starší verze prostředí Netezza se obvykle postupně rozvíjejí, aby zahrnovaly více oblastí předmětu a smíšené úlohy.Legacy Netezza environments typically evolve over time to encompass multiple subject areas and mixed workloads. Když se rozhodujete, kde začít na počátečním projektu migrace, je vhodné zvolit oblast, která:When you are deciding where to start on an initial migration project, it makes sense to choose an area that:

    • Prokáže životaschopnost migrace do Azure synapse tím, že rychle doručí výhody nového prostředí.Proves the viability of migrating to Azure Synapse by quickly delivering the benefits of the new environment.
    • Umožňuje interním technickým pracovníkům získat zkušenosti s novými procesy a nástroji, aby je mohli používat k migraci dalších oblastí.Allows in-house technical staff to gain experience with new processes and tools so that they can use them to migrate other areas.
    • Vytvoří šablonu založenou na aktuálních nástrojích a procesech pro použití v dalších migracích ze zdrojového Netezza prostředí.Creates a template based on the current tools and processes to use in additional migrations from the source Netezza environment.

    Dobrým kandidátem na počáteční migraci z prostředí Netezza, které by podporovalo tyto cíle, je obvykle ten, který implementuje úlohu Power BI/analýzy namísto úlohy OLTP.A good candidate for an initial migration from a Netezza environment that would support these objectives typically is one that implements a Power BI/analytics workload rather than an OLTP workload. Zatížení by mělo mít datový model, který se dá migrovat s minimálními úpravami, jako je například hvězda nebo Snowflake.The workload should have a data model that can be migrated with minimal modifications, such as a star or snowflake schema.

    Pro velikost je důležité, aby datový svazek, který migrujete při počátečním cvičení, byl dostatečně velký, aby předvedl možnosti a výhody prostředí Azure synapse s krátkou dobou předvedením hodnoty.For size, it's important that the data volume you migrate in the initial exercise is large enough to demonstrate the capabilities and benefits of the Azure Synapse environment with a short time to demonstrate value. Velikost, která obvykle splňuje požadavky, je v rozsahu 1 terabajt (TB) až 10 TB.The size that typically meets the requirements is in the range of 1 terabyte (TB) to 10 TB.

    Přístup k počátečnímu projektu migrace, který minimalizuje čas a dobu realizace, je omezit rozsah migrace na tržiště dat.An approach for the initial migration project that minimizes risk and implementation time is to confine the scope of the migration to data marts. Tento přístup je dobrým výchozím bodem, protože jasně omezuje rozsah migrace a obvykle se dá dosáhnout na krátkou časovou osu.This approach is a good starting point because it clearly limits the scope of the migration and typically can be achieved on a short timescale. Počáteční migrace dat tržiště neřeší jenom širší otázky, jako je třeba migrace ETL a historických dat.An initial migration of data marts only doesn't address broader concerns like how to migrate ETL and historical data. Tyto oblasti je nutné adresovat v pozdějších fázích a zpětně naplnit vrstvu migrovaných datových tržiště s daty a procesy, které jsou nutné k jejich sestavení.You must address these areas in later phases and backfill the migrated data mart layer with the data and processes that are required to build them.

    Přístup k metodě zvednutí a posunutí vs. fázeLift-and-shift approach vs. phased approach

    Bez ohledu na to, jaké ovladače a rozsah zvolíte pro migraci, můžete vybrat ze dvou obecných typů migrace:Regardless of the drivers and scope that you choose for your migration, you can choose from two general types of migration:

    • Přístup k metodě zvednutí a posunutí: V tomto přístupu se stávající datový model, jako je třeba schéma hvězdičky, migruje beze změny na novou platformu Azure synapse.Lift-and-shift approach: In this approach, the existing data model, such as a star schema, is migrated unchanged to the new Azure Synapse platform. V tomto scénáři se důrazem na minimalizaci rizika a dobu potřebnou k migraci díky omezení práce, kterou je potřeba udělat, abyste dosáhli výhod přechodu do cloudového prostředí Azure.In this scenario, the emphasis is on minimizing risk and the time it takes to migrate by reducing the work that has to be done to achieve the benefits of moving to the Azure cloud environment.

      Tento přístup je vhodný pro existující prostředí Teradata, ve kterých se migruje jedno datové tržiště, a pokud jsou data už ve schématu navržené hvězdičkou nebo Snowflake.This approach is a good fit for existing Teradata environments in which a single data mart is to be migrated, and if the data is already in a well-designed star or snowflake schema. Tento přístup je dobrým výběrem, pokud máte čas a náklady na přechod na moderní cloudové prostředí.This approach is a good choice also if you have time and cost pressures to move to a more modern cloud environment.

    • Postup, který zahrnuje úpravy: Pokud se starší datový sklad vyvinul v čase, může být nutné, aby datový sklad mohl zajišťovat požadovaný výkon nebo podporovat nové zdroje dat, jako jsou datové proudy IoT.Phased approach that incorporates modifications: When a legacy warehouse has evolved over time, you might need to reengineer the data warehouse to maintain the required performance or to support new data sources like IoT streams. Migrace na Azure synapse pro známé výhody škálovatelného cloudového prostředí může být považována za součást procesu restrojírenství.Migrating to Azure Synapse for the well-known benefits of a scalable cloud environment might be considered part of the reengineering process. Tento proces může zahrnovat změnu základního datového modelu, jako je například přesun z modelu Inmon do trezoru dat Azure.This process might include changing the underlying data model, such as moving from an Inmon model to Azure Data Vault.

      Tento přístup doporučujeme zpočátku přesunout existující datový model do Azure.The approach we recommend is to initially move the existing data model as-is to Azure. Pak využijte výkon a flexibilitu služeb Azure, abyste mohli použít změny v systému, aniž by to ovlivnilo stávající zdrojový systém.Then, take advantage of the performance and flexibility of Azure services to apply the reengineering changes without affecting the existing source system.

    Migrace metadatMetadata migration

    Je vhodné automatizovat a orchestrovat proces migrace pomocí možností prostředí Azure.It makes sense to automate and orchestrate the migration process by using the capabilities of the Azure environment. Tento přístup minimalizuje účinek stávajícího prostředí Netezza, které už může běžet blízko k plné kapacitě.This approach minimizes the effect on the existing Netezza environment, which might already be running close to full capacity.

    Azure Data Factory je cloudová datová integrační služba.Azure Data Factory is a cloud-based data integration service. Data Factory můžete použít k vytvoření pracovních postupů řízených daty v cloudu a orchestrovat a automatizovat přesun dat a transformaci dat.You can use Data Factory to create data-driven workflows in the cloud to orchestrate and automate data movement and data transformation. Data Factory kanály mohou ingestovat data z různorodých úložišť dat a pak je zpracovávat a transformovat pomocí výpočetních služeb, jako je Azure HDInsight, pro Apache Hadoop a Apache Spark, Azure Data Lake Analytics a Azure Machine Learning.Data Factory pipelines can ingest data from disparate datastores, and then process and transform the data by using compute services like Azure HDInsight for Apache Hadoop and Apache Spark, Azure Data Lake Analytics, and Azure Machine Learning. Začnete tím, že vytvoříte metadata k vypsání tabulek dat, které chcete migrovat, s jejich umístěním a pak pomocí možností Data Factory ke správě procesu migrace.You start by creating metadata to list the data tables you want to migrate, with their locations, and then use Data Factory capabilities to manage the migration process.

    Rozdíly v návrhu mezi Netezza a Azure synapseDesign differences between Netezza and Azure Synapse

    Při plánování migrace ze staršího prostředí Netezza do Azure synapse je důležité vzít v úvahu rozdíly v návrhu mezi oběma platformami.As you plan your migration from a legacy Netezza environment to Azure Synapse, it's important to consider the design differences between the two platforms.

    Více databází vs. jedna databáze a schémataMultiple databases vs. a single database and schemas

    V prostředí Netezza můžete mít několik samostatných databází pro různé části celkového prostředí.In a Netezza environment, you might have multiple, separate databases for different parts of the overall environment. Můžete mít například samostatnou databázi pro přijímání a přípravu dat, databázi pro základní tabulky skladu a jinou databázi pro tržiště dat, někdy označovanou jako sémantická vrstva.For example, you might have a separate database for data ingestion and staging tables, a database for core warehouse tables, and another database for data marts, sometimes called a semantic layer. Zpracování samostatných databází jako kanálů ETL/ELT v Azure synapse může vyžadovat implementaci spojení mezi databázemi a přesouvání dat mezi samostatnými databázemi.Processing separate databases as ETL/ELT pipelines in Azure Synapse might require implementing cross-database joins and moving data between the separate databases.

    Prostředí Azure synapse má jedinou databázi.The Azure Synapse environment has a single database. Schémata se používají k oddělení tabulek do logických samostatných skupin.Schemas are used to separate tables into logically separate groups. Doporučujeme, abyste v cílovém Azure synapse použili sadu schémat k napodobování všech samostatných databází, které migrujete z Netezza.We recommend that you use a set of schemas in the target Azure Synapse to mimic any separate databases that you migrate from Netezza. Pokud používáte schémata v prostředí Netezza, možná budete muset použít nové zásady vytváření názvů k přesunutí stávajících tabulek a zobrazení Netezza do nového prostředí.If you use schemas in the Netezza environment, you might need to use a new naming convention to move the existing Netezza tables and views to the new environment. Můžete například zřetězit existující schéma Netezza a názvy tabulek do nového názvu tabulky Azure synapse a pak pomocí názvů schémat v novém prostředí zachovat původní názvy samostatných databází.For example, you might concatenate the existing Netezza schema and table names into the new Azure Synapse table name, and then use schema names in the new environment to maintain the original separate database names.

    Další možností je použít zobrazení SQL nad podkladovými tabulkami k údržbě logických struktur.Another option is to use SQL views over the underlying tables to maintain the logical structures. Existují některé potenciální downsides k používání zobrazení SQL:There are some potential downsides to using SQL views:

    • Zobrazení v Azure synapse jsou jen pro čtení, takže musíte v základních základních tabulkách udělat jakékoli aktualizace dat.Views in Azure Synapse are read-only, so you must make any updates to the data on the underlying base tables.
    • Pokud již existují vrstvy zobrazení, přidání další vrstvy zobrazení může mít vliv na výkon.If layers of views already exist, adding another layer of views might affect performance.

    TabulkyTables

    Když migrujete tabulky mezi různými technologiemi, fyzicky přesunete jenom nezpracovaná data a metadata, která ho popisují mezi těmito dvěma prostředími.When you migrate tables between different technologies, you physically move only raw data and the metadata that describes it between the two environments. Nemigrujete databázové prvky jako indexy ze zdrojového systému, protože nemusí být potřeba nebo se můžou v novém prostředí implementovat jinak.You don't migrate database elements like indexes from the source system because they might not be needed or they might be implemented differently in the new environment.

    Nicméně informace o tom, kde se optimalizace výkonu, jako jsou indexy, používají ve zdrojovém prostředí, můžou být užitečným označením, kde můžete optimalizovat výkon v novém prostředí.However, understanding where performance optimizations like indexes have been used in the source environment can be a helpful indication of where you might optimize performance in the new environment. Pokud například dotazy ve zdrojovém prostředí Netezza často používají mapy zón, může dojít k tomu, že by bylo výhodné vytvořit neclusterovaný index v migrovaném prostředí Azure synapse nebo že použití jiných technik optimalizace výkonu, jako je například replikace tabulek, může být vhodnější vytvořit index podobný tomu.For example, if queries in the source Netezza environment frequently use zone maps, you might conclude that it would be advantageous to create a nonclustered index in the migrated Azure Synapse environment, or that using other native performance optimization techniques like table replication might be preferable to creating a like-for-like index.

    Nepodporované typy objektů databáze NetezzaUnsupported Netezza database object types

    Netezza implementuje některé databázové objekty, které nejsou přímo podporované v Azure synapse.Netezza implements some database objects that aren't directly supported in Azure Synapse. Azure synapse ale nabízí metody, které můžete použít k dosažení stejných funkcí v novém prostředí, jak je popsáno v následujícím seznamu:However, Azure Synapse offers methods that you can use to achieve the same functionality in the new environment, as described in the following list:

    • Mapy zón: V Netezza se mapy zón automaticky vytvářejí a udržují pro některé typy sloupců.Zone maps: In Netezza, zone maps are automatically created and maintained for some column types. Mapy zón se používají v době dotazu na následující typy sloupců k omezení množství dat, která se mají zkontrolovat:Zone maps are used at query time on the following column types to restrict the amount of data to be scanned:

      • INTEGER sloupce, které mají délku 8 bajtů nebo méněINTEGER columns that are a length of 8 bytes or less
      • Dočasné sloupce, včetně DATE , TIME a TIMESTAMPTemporal columns, including DATE, TIME, and TIMESTAMP
      • CHAR sloupce, pokud jsou součástí materializované zobrazení a jsou součástí ORDER BY klauzuleCHAR columns, if they are part of a materialized view and included in the ORDER BY clause

      Pomocí nástroje nz_zonemap můžete zjistit, které sloupce mají mapování zón.You can find out which columns have zone maps by using the nz_zonemap utility. Tento nástroj je součástí sady nástrojů NZ.The utility is part of the NZ Toolkit.

      Azure synapse nepoužívá mapy zón, ale podobné výsledky můžete dosáhnout pomocí uživatelem definovaných typů indexu nebo vytváření oddílů.Azure Synapse doesn't use zone maps, but you can achieve similar results by using user-defined index types or partitioning.

    • Základní tabulky v clusteru (CBTs): V Netezza je nejběžnější CBT tabulka faktů, která má miliardy záznamů.Clustered base tables (CBTs): In Netezza, the most common CBT is the fact table, which has billions of records. Prohledávání takových obrovských tabulek vyžaduje dlouhou dobu zpracování, protože k získání relevantních záznamů může být potřeba úplná kontrola tabulky.Scanning such a huge table requires a long processing time because a full table scan might be needed to get relevant records. Díky uspořádání záznamů v omezující CBTs může Netezza seskupovat záznamy ve stejném nebo okolním rozsahu.By organizing records in restrictive CBTs, Netezza can group records in the same or nearby extents. Proces také vytvoří mapy zón, které zlepšují výkon tím, že se sníží množství dat, která se mají kontrolovat.The process also creates zone maps that improve performance by reducing the amount of data to scan.

      V Azure synapse můžete dosáhnout podobného výsledku prostřednictvím dělení nebo pomocí jiných typů indexů.In Azure Synapse, you can achieve a similar result through partitioning or by using other index types.

    • Materializovaná zobrazení: Netezza doporučuje, aby uživatelé vytvořili jeden nebo více materializované zobrazení v rozsáhlých tabulkách, které mají mnoho sloupců, a ve kterém se v dotazech pravidelně používají jenom několik sloupců.Materialized views: Netezza recommends that users create one or more materialized view over large tables that have many columns, and in which only a few columns are regularly used in queries. Materializovaná zobrazení jsou automaticky udržována systémem, když jsou aktualizována data v základní tabulce.Materialized views are automatically maintained by the system when data in the base table is updated.

      V současné době nabízí Microsoft podporu pro materializovaná zobrazení ve verzi Preview se stejnými funkcemi jako Netezza v Azure synapse.Currently, Microsoft offers preview support for materialized views, with the same functionality as Netezza, in Azure Synapse.

    • Mapování datových typů: Většina datových typů Netezza má přímý ekvivalent v Azure synapse.Data type mapping: Most Netezza data types have a direct equivalent in Azure Synapse. V následující tabulce jsou uvedeny datové typy a doporučené přístupy k mapování datových typů.The following table shows the data types and the recommended approaches for mapping the data types.

      Někteří dodavatelé třetích stran nabízejí nástroje a služby, které umožňují automatizovat úlohy migrace, včetně mapování datových typů.Some third-party vendors offer tools and services that can automate migration tasks, including data type mapping. Pokud se už v prostředí Netezza používá nástroj ETL jiného výrobce, jako je Informatica nebo Talend, můžete použít nástroj k implementaci jakýchkoli potřebných transformací dat.If a third-party ETL tool like Informatica or Talend is already used in the Netezza environment, you can use the tool to implement any data transformations that are required.

    • Syntaxe jazyka DML (SQL data pro manipulaci): Měli byste si uvědomit několik rozdílů v syntaxi DML SQL mezi Netezza SQL a Azure synapse.SQL Data Manipulation Language (DML) syntax: You should be aware of a few differences in SQL DML syntax between Netezza SQL and Azure Synapse.

      Tady jsou některé klíčové funkce a jejich rozdíl:Here are some key functions and how they are different:

      • STRPOS: V Netezza STRPOS funkce vrátí pozici podřetězce v řetězci.STRPOS: In Netezza, the STRPOS function returns the position of a substring within a string. Ekvivalentem ve službě Azure synapse je CHARINDEX funkce a pořadí argumentů je obrácené.The equivalent in Azure Synapse is the CHARINDEX function, and the order of the arguments is reversed.

        V Netezza:In Netezza:

        SELECT STRPOS('abcdef', 'def') ...

        V Azure synapse nahrazuje následující kód:Is replaced with the following code in Azure Synapse:

        SELECT CHARINDEX('def', 'abcdef') ...

      • AGE: Netezza podporuje AGE operátor pro přidělení intervalu mezi dvě dočasné hodnoty (například časová razítka a data).AGE: Netezza supports the AGE operator to give the interval between two temporal values (for example, timestamps and dates). Například:For example:

        SELECT AGE ('23-03-1956', '01-01-2019') FROM ...

        Stejný výsledek můžete dosáhnout v Azure synapse pomocí DATEDIFF (Všimněte si sekvence reprezentace data):You can achieve the same result in Azure Synapse by using DATEDIFF (note the date representation sequence):

        SELECT DATEDIFF(day, '1956-03-23', '2019-01-01') FROM ...

      • NOW(): Netezza používá NOW() reprezentaci CURRENT_TIMESTAMP v Azure synapse.NOW(): Netezza uses NOW() to represent CURRENT_TIMESTAMP in Azure Synapse.

    Funkce, uložené procedury a sekvenceFunctions, stored procedures, and sequences

    Když migrujete datový sklad z vyspělého staršího prostředí, jako je Netezza, často potřebujete migrovat prvky jiné než jednoduché tabulky a zobrazení do nového cílového prostředí.When you migrate a data warehouse from a mature legacy environment like Netezza, you often need to migrate elements other than simple tables and views to the new target environment. Příklady netabulkových prvků v Netezza, které možná budete potřebovat k migraci do Azure synapse, jsou funkce, uložené procedury a sekvence.Examples of non-table elements in Netezza that you might need to migrate to Azure Synapse are functions, stored procedures, and sequences. Během přípravy na migraci byste měli vytvořit inventarizaci objektů, které chcete migrovat.During the preparation phase of the migration, you should create an inventory of objects to migrate. V plánu projektu Definujte metodu zpracování všech objektů a přidělte příslušné prostředky pro jejich migraci.In the project plan, define the method of handling all objects and allocate the appropriate resources for their migration.

    V prostředí Azure můžete najít služby, které nahradí funkce implementované jako funkce nebo uložené procedury v prostředí Netezza.You might find services in the Azure environment that replace the functionality implemented as functions or stored procedures in the Netezza environment. Obvykle je efektivnější používat integrované možnosti Azure místo překódování funkcí Netezza.Usually, it's more efficient to use the built-in Azure capabilities instead of recoding the Netezza functions.

    Dodavatelé třetích stran také nabízejí nástroje a služby, které mohou automatizovat migraci funkcí, uložených procedur a sekvencí z Netezza.Also, third-party vendors offer tools and services that can automate the migration of functions, stored procedures, and sequences from Netezza. Příklady zahrnují Qlik (dříve Attunity) a WhereScape.Examples include Qlik (formerly Attunity) and WhereScape.

    Zde jsou některé další informace o migraci funkcí, uložených procedur a sekvencí:Here's some additional information about migrating functions, stored procedures, and sequences:

    • Funkce: Podobně jako většina databázových produktů podporuje Netezza systémové funkce a uživatelsky definované funkce v implementaci SQL.Functions: Like most database products, Netezza supports system functions and user-defined functions in a SQL implementation. Když jsou běžné systémové funkce migrovány na jinou databázovou platformu, jako je například Azure synapse, jsou všeobecně dostupné v novém prostředí a je možné je migrovat beze změn.When common system functions are migrated to another database platform like Azure Synapse, they generally are available in the new environment and can be migrated without change. Pokud má systémová funkce mírně odlišnou syntaxi v novém prostředí, obvykle můžete požadované změny automatizovat.If system functions have slightly different syntax in the new environment, you usually can automate the required changes.

      Možná budete muset Recode libovolné uživatelsky definované funkce a systémové funkce, které nemají ekvivalent v novém prostředí.You might need to recode arbitrary user-defined functions and system functions that have no equivalent in the new environment. Používejte jazyky, které jsou k dispozici v novém prostředí.Use the languages that are available in the new environment. Uživatelsky definované funkce Netezza se kódují pomocí nzLua nebo C++.Netezza user-defined functions are coded by using nzLua or C++. Azure synapse používá oblíbený jazyk Transact-SQL k implementaci uživatelsky definovaných funkcí.Azure Synapse uses the popular Transact-SQL language to implement user-defined functions.

    • Uložené procedury: Ve většině moderních databázových produktech můžete ukládat procedury n databáze.Stored procedures: In most modern database products, you can store procedures n the database. Uložená procedura obvykle obsahuje příkazy SQL a některé procedurální logiky.A stored procedure typically contains SQL statements and some procedural logic. Může také vracet data nebo stav.It might also return data or a status.

      Netezza poskytuje pro uložené procedury NZPLSQL jazyk založený na PL/pgSQL.Netezza provides the NZPLSQL language, based on PL/pgSQL, for stored procedures. Azure synapse podporuje uložené procedury pomocí T-SQL.Azure Synapse supports stored procedures by using T-SQL. Pokud migrujete uložené procedury do Azure synapse, musíte je Recode pomocí T-SQL.If you migrate stored procedures to Azure Synapse, you must recode them by using T-SQL.

    • Sekvence: V Netezza je sekvence pojmenovaného databázového objektu, který je vytvořen prostřednictvím CREATE SEQUENCE příkazu.Sequences: In Netezza, a sequence is a named database object that's created via a CREATE SEQUENCE statement. Objekty mohou poskytnout jedinečnou hodnotu prostřednictvím NEXT() metody.Objects can provide the unique value via the NEXT() method. Hodnoty můžete použít k vygenerování jedinečných čísel jako hodnot náhradních klíčů pro hodnoty primárního klíče.You can use values to generate unique numbers as surrogate key values for primary key values.

      Azure synapse nepodporuje CREATE SEQUENCE .Azure Synapse doesn't support CREATE SEQUENCE. Ve službě Azure synapse jsou sekvence zpracovávány pomocí sloupců identity nebo kódu SQL k vytvoření dalšího pořadového čísla v řadě.In Azure Synapse, sequences are handled by using identity columns or SQL code to create the next sequence number in a series.

    Metadata a extrakce datMetadata and data extraction

    Při plánování, jak extrahovat metadata a data z prostředí Netezza, vezměte v úvahu následující informace:Consider the following information when you plan how to extract metadata and data from the Netezza environment:

    • Generování jazyka DDL (Data Definition Language): V případě potřeby je možné upravit existující Netezza CREATE TABLE a CREATE VIEW skripty a vytvořit ekvivalentní definice s upravenými datovými typy, jak je popsáno výše.Data Definition Language (DDL) generation: It's possible to edit existing Netezza CREATE TABLE and CREATE VIEW scripts to create the equivalent definitions, with modified data types if necessary, as described earlier. Tato úloha obvykle zahrnuje odebrání nebo úpravu jakýchkoli klauzulí, které jsou specifické pro Netezza, například ORGANIZE ON .This task usually involves removing or modifying any clauses that are specific to Netezza, like ORGANIZE ON.

      V Netezza jsou informace, které určují definici aktuální tabulky a zobrazení, udržovány v tabulkách systémových katalogů.In Netezza, the information that specifies the current table and view definitions is maintained in system catalog tables. Systémové tabulky katalogu jsou nejlepším zdrojem informací, protože tabulky jsou pravděpodobně aktuální a jsou dokončené.System catalog tables are the best source of the information because the tables likely are up to date and complete. Dokumentace udržovaná uživatelem nemusí být synchronizovaná s definicemi aktuální tabulky.User-maintained documentation might not be in sync with current table definitions.

    K tabulkám katalogu System Catalog můžete v Netezza přistupovat pomocí nástroje, jako je nz_ddl_table.You can access system catalog tables in Netezza by using a utility like nz_ddl_table. Tabulky můžete použít k vygenerování CREATE TABLE příkazů DDL, které pak můžete upravit pro ekvivalentní tabulky v Azure synapse.You can use the tables to generate CREATE TABLE DDL statements, which you can then edit for the equivalent tables in Azure Synapse. Nástroje pro migraci a ETL třetích stran také využívají informace katalogu k dosažení stejných výsledků.Third-party migration and ETL tools also use the catalog information to achieve the same results.

    • Extrakce dat: Nezpracovaná data můžete extrahovat z existující tabulky Netezza do plochého odděleného souboru pomocí standardních Netezza nástrojů jako nzsql a nzunload a pomocí externích tabulek.Data extraction: You can extract raw data to migrate from an existing Netezza table into a flat, delimited file by using standard Netezza utilities like nzsql and nzunload, and by using external tables. Zkomprimujte soubory pomocí gzip a pak použijte AzCopy nebo službu Azure Data Transport, jako je Azure Data Box k nahrání souborů do Azure Blob Storage.Compress the files by using Gzip, and then use AzCopy or an Azure data transport service like Azure Data Box to upload the files to Azure Blob Storage.

      Během migračního cvičení je důležité data co nejefektivněji extrahovat.During a migration exercise, it's important to extract data as efficiently as possible. Doporučený postup pro Netezza je použití externích tabulek, což je také nejrychlejší metoda.The recommended approach for Netezza is to use external tables, which is also the fastest method. Můžete dokončit více extrakcí paralelně a maximalizovat tak propustnost pro extrakci dat.You can complete multiple extracts in parallel to maximize the throughput for data extraction.

    Tady je jednoduchý příklad extrakce externí tabulky:Here's a simple example of an external table extract:

    CREATE EXTERNAL TABLE '/tmp/export_tab1.CSV' USING (DELIM ',') AS SELECT * from <TABLE-NAME>;

    Pokud máte dostatečnou šířku pásma sítě, můžete extrahovat data přímo z místního systému Netezza do tabulek Azure synapse nebo do úložiště dat Azure pomocí Data Factorych procesů nebo migrace dat třetích stran nebo produktů ETL.If you have sufficient network bandwidth, you can extract data directly from an on-premises Netezza system into Azure Synapse tables or into Azure data storage by using Data Factory processes or third-party data migration or ETL products.

    Doporučené formáty dat pro extrahovaná data jsou textové soubory s oddělovači (označované také jako hodnoty oddělené čárkami), optimalizované sloupcové sloupcové soubory nebo soubory Parquet.Recommended data formats for extracted data are delimited text files (also called comma-separated values), optimized row columnar files, or Parquet files.

    Podrobnější informace o procesu migrace dat a ETL z prostředí Netezza najdete v dokumentaci k Netezza o migraci dat ETL a Load.For more detailed information about the process of migrating data and ETL from a Netezza environment, see the Netezza documentation about data migration ETL and load.

    Doporučení pro ladění výkonuPerformance-tuning recommendations

    Když přejdete na Azure synapse z prostředí Netezza, budete znát spoustu konceptů vyladění výkonu, které používáte.When you move to Azure Synapse from a Netezza environment, many of the performance-tuning concepts you use will be familiar.

    Například tyto koncepty jsou pro obě prostředí stejné:For example, these concepts are the same for both environments:

    • Distribuce dat společně vyhledává data, která se mají připojit do stejného uzlu zpracování.Data distribution colocates data to be joined onto the same processing node.
    • Když použijete nejmenší datový typ pro určitý sloupec, ušetříte prostor úložiště a urychlíte zpracování dotazů.Using the smallest data type for a specific column saves storage space and accelerates query processing.
    • Aby bylo zajištěno, že datové typy sloupců, které mají být spojeny, se spojí se zpracováním, což snižuje nutnost transformovat data pro porovnání.Ensuring that data types of columns to be joined are identical optimizes join processing by reducing the need to transform data for matching.
    • Zajištění aktuálnosti statistik pomáhá Optimalizátoru vytvořit nejlepší plán spuštění.Ensuring that statistics are up to date helps the optimizer produce the best execution plan.

    Existují některé rozdíly mezi platformami, pokud se na optimalizaci nachází.There are some differences between platforms when it comes to optimization. V následujícím seznamu doporučení pro optimalizaci výkonu se zvýrazní rozdíly v implementaci na nižší úrovni mezi Netezza a Azure synapse a alternativy pro vaši migraci jsou zvýrazněné:In the following list of performance-tuning recommendations, lower-level implementation differences between Netezza and Azure Synapse, and alternatives for your migration, are highlighted:

    • Možnosti distribuce dat: V Netezza i v Azure synapse můžete pomocí CREATE TABLE příkazu zadat definici distribuce.Data distribution options: In both Netezza and Azure Synapse, you can use a CREATE TABLE statement to specify a distribution definition. Použijte DISTRIBUTE ON pro Netezza a DISTRIBUTION = pro Azure synapse.Use DISTRIBUTE ON for Netezza and DISTRIBUTION = for Azure Synapse.

      Azure synapse poskytuje další způsob, jak zajistit místní spojení pro malé tabulky a velké spojení tabulek, často označované jako tabulka dimenze/spojení tabulek faktů v modelu schématu hvězdičky.Azure Synapse provides an additional way to achieve local joins for small table/large table joins, often called a dimension table/fact table join in a star schema model. Přístup je k replikaci menší tabulky dimenze ve všech uzlech, čímž se zajistí, že jakákoli hodnota klíče JOIN pro větší tabulku bude mít odpovídající řádek dimenze, který je místně dostupný.The approach is to replicate the smaller dimension table across all nodes, thereby ensuring that any value of the join key for the larger table will have a matching dimension row that's locally available. Režie replikace tabulky dimenzí je poměrně nízká, pokud tabulky nejsou velké.The overhead of replicating the dimension table is relatively low if the tables are not large. V takovém případě je vhodnější použití výše popsaného přístupu k distribuci algoritmem hash.In this case, using the hash distribution approach described earlier is preferable.

    • Indexování dat: Azure synapse nabízí různé možnosti indexování, které uživatelsky definovatelné možnosti, ale možnosti se liší v provozu a používání než mapy zón spravované systémem v Netezza.Data indexing: Azure Synapse provides various user-definable indexing options, but the options are different in operation and usage than system-managed zone maps in Netezza. Další informace o možnostech indexování v Azure synapse najdete v tématu tabulky indexů ve fondu Azure synapse SQL.To learn about the indexing options in Azure Synapse, see Index tables in an Azure Synapse SQL pool.

      Stávající mapy zón spravované systémem ve zdrojovém prostředí Netezza můžou poskytovat užitečné informace o tom, jak se data používají, a poskytnout informace o kandidátských sloupcích pro indexování v prostředí Azure synapse.Existing system-managed zone maps in the source Netezza environment can provide a useful indication of how data is used and provide an indication of candidate columns for indexing in the Azure Synapse environment.

    • Dělení dat: V podnikovém datovém skladu může tabulka faktů obsahovat spoustu miliard řádků dat.Data partitioning: In an enterprise data warehouse, fact tables might contain many billions of rows of data. Vytváření oddílů je způsob, jak optimalizovat údržbu a dotazování v těchto tabulkách.Partitioning is a way to optimize maintenance and querying in these tables. Rozdělení tabulek na samostatné části snižuje množství zpracovaných dat najednou.Splitting the tables into separate parts reduces the amount of data processed at one time. Vytváření oddílů pro tabulku je definováno v CREATE TABLE příkazu.Partitioning for a table is defined in the CREATE TABLE statement.

      Pro vytváření oddílů lze použít pouze jedno pole na tabulku.Only one field per table can be used for partitioning. Pole, které se používá pro často se dělení, je pole kalendářního data, protože mnoho dotazů je filtrováno podle data nebo podle rozsahu kalendářních dat.The field that's used for partitioning frequently is a date field because many queries are filtered by date or by a date range. Po počátečním načtení můžete změnit oddíly tabulky.You can change the partitioning of a table after initial load. Chcete-li změnit dělení tabulky, vytvořte tabulku znovu s novou distribucí, která používá CREATE TABLE AS SELECT příkaz.To change a table's partitioning, re-create the table with a new distribution that uses the CREATE TABLE AS SELECT statement. Podrobný popis dělení v Azure synapse najdete v tématu tabulky oddílů ve fondu Azure synapse SQL.For a detailed description of partitioning in Azure Synapse, see Partition tables in an Azure Synapse SQL pool.

    • Základ pro načítání dat: Základem je nejúčinnější metoda, která se používá k načtení velkých objemů dat do datového skladu.PolyBase for data loading: PolyBase is the most efficient method to use to load large amounts of data into a warehouse. K načtení dat do paralelních streamů můžete použít základnu.You can use PolyBase to load data in parallel streams.

    • Třídy prostředků pro správu úloh: Azure synapse používá třídy prostředků pro správu úloh.Resource classes for workload management: Azure Synapse uses resource classes to manage workloads. Obecně velké třídy prostředků poskytují lepší výkon jednotlivých dotazů.In general, large resource classes provide better individual query performance. Menší třídy prostředků poskytují vyšší úrovně souběžnosti.Smaller resource classes give you higher levels of concurrency. Pomocí zobrazení dynamické správy můžete monitorovat využití, aby bylo zajištěno, že budou vhodné prostředky efektivně použity.You can use dynamic management views to monitor utilization to help ensure that the appropriate resources are used efficiently.

    Další krokyNext steps

    Další informace o implementaci Netezza migrace získáte v rozhovorech s vaším zástupcem účet Microsoft o místních nabídkách migrace.For more information about implementing a Netezza migration, talk with your Microsoft account representative about on-premises migration offers.