Soluzioni e migrazione di Azure sinapsi Analytics per NetezzaAzure Synapse Analytics solutions and migration for Netezza

Al termine del supporto IBM per Netezza, molte organizzazioni che attualmente usano i sistemi di data warehouse Netezza stanno cercando di sfruttare i vantaggi del cloud innovativo, dell'infrastruttura distribuita come servizio e delle offerte di piattaforma come servizio in ambienti più recenti come 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. Molte organizzazioni sono pronte a eseguire il passaggio di attività costose come la manutenzione dell'infrastruttura e lo sviluppo di piattaforme a un provider di servizi cloud.Many organizations are ready to take the step of shifting expensive tasks like infrastructure maintenance and platform development to a cloud provider.

Azure sinapsi Analytics è un servizio di analisi senza limiti che riunisce data warehousing aziendale e analisi Big Data.Azure Synapse Analytics is a limitless analytics service that brings together enterprise data warehousing and big data analytics. Offre la possibilità di eseguire query sui dati in base alla scalabilità usando risorse su richiesta o con provisioning senza server.It gives you the freedom to query data on your terms at scale by using either serverless on-demand or provisioned resources. Informazioni sugli elementi da pianificare durante la migrazione di un sistema Netezza legacy in sinapsi di Azure.Learn what to plan for as you migrate a legacy Netezza system to Azure Synapse.

Netezza e le sinapsi di Azure sono simili in quanto ognuno è un database SQL progettato per l'uso di tecniche di elaborazione parallela massiva per ottenere prestazioni di query elevate su volumi di dati di grandi dimensioni.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. Tuttavia, le due piattaforme sono diverse negli aspetti principali:But the two platforms are different in key aspects:

  • I sistemi Netezza legacy vengono installati in locale e utilizzano hardware proprietario.Legacy Netezza systems are installed on-premises, and they use proprietary hardware. La sinapsi di Azure è basata sul cloud e usa risorse di calcolo e di archiviazione di Azure.Azure Synapse is cloud-based and uses Azure compute and storage resources.
  • L'aggiornamento di una configurazione di Netezza è un'attività fondamentale che prevede hardware fisico aggiuntivo e una riconfigurazione del database potenzialmente lunga oppure il dump e il ricaricamento.Upgrading a Netezza configuration is a major task that involves extra physical hardware and a potentially lengthy database reconfiguration or dump and reload. In sinapsi di Azure le risorse di archiviazione e di calcolo sono separate.In Azure Synapse, storage and compute resources are separate. Puoi usare la scalabilità elastica di Azure per aumentare o ridurre le prestazioni in modo indipendente.You can use the elastic scalability of Azure to independently scale up or down.
  • Senza un sistema fisico per supportare, è possibile sospendere o ridimensionare le sinapsi di Azure in base alle esigenze per ridurre l'utilizzo delle risorse e i costi.Without a physical system to support, you can pause or resize Azure Synapse as needed to reduce resource utilization and cost. In Azure è possibile accedere a un ambiente cloud disponibile a livello globale, altamente sicuro e scalabile che include la sinapsi di Azure in un ecosistema di strumenti e funzionalità di supporto.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.

Questo articolo illustra la migrazione dello schema, con una visualizzazione per ottenere prestazioni equivalenti o migliorate della data warehouse Netezza migrata e dei data mart nella sinapsi di Azure.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. Si tratta di considerazioni che si applicano in modo specifico alla migrazione da un ambiente Netezza esistente.We consider concerns that apply specifically to migrating from an existing Netezza environment.

A un livello elevato, il processo di migrazione include i passaggi elencati nella tabella seguente:At a high level, the migration process includes the steps that are listed in the following table:

PreparazionePreparation MigrazioneMigration Post-migrazionePost-migration
  • Definire l'ambito: di cosa si vuole eseguire la migrazione?Define scope: what do we want to migrate?
  • Creazione di un inventario di dati e processi per la migrazione.Build an inventory of data and processes to migrate.
  • Definire le modifiche apportate al modello di dati.Define any data model changes.
  • Identificare i migliori strumenti e funzionalità di Azure e di terze parti da usare.Identify the best Azure and third-party tools and features to use.
  • Esegui il training del personale in anticipo nella nuova piattaforma.Train staff early on the new platform.
  • Configurare la piattaforma di destinazione di Azure.Set up the Azure target platform.
  • Avvio piccolo e semplice.Start small and simple.
  • Automatizzare laddove possibile.Automate where possible.
  • Usare gli strumenti e le funzionalità predefiniti di Azure per ridurre il lavoro richiesto per la migrazione.Use Azure built-in tools and features to reduce the migration effort.
  • Eseguire la migrazione dei metadati per tabelle e viste.Migrate metadata for tables and views.
  • Eseguire la migrazione dei dati cronologici pertinenti.Migrate relevant historical data.
  • Eseguire la migrazione o effettuare il refactoring di stored procedure e processi aziendali.Migrate or refactor stored procedures and business processes.
  • Eseguire la migrazione o effettuare il refactoring dei processi di caricamento incrementale.Migrate or refactor ETL or ELT incremental load processes.
  • Monitorare e documentare tutte le fasi del processo di migrazione.Monitor and document all stages of the migration process.
  • Usare l'esperienza acquisita per creare un modello per migrazioni future.Use experience gained to build a template for future migrations.
  • Rimotorizzare il modello di dati, se necessario, usando le prestazioni e la scalabilità della nuova piattaforma.Reengineer the data model if necessary by using the new platform's performance and scalability.
  • Testare le applicazioni e gli strumenti di query.Test applications and query tools.
  • Benchmark e ottimizzare le prestazioni delle query.Benchmark and optimize query performance.

Quando si esegue la migrazione da un ambiente Netezza legacy a una sinapsi di Azure, è necessario prendere in considerazione alcuni fattori specifici, oltre ai soggetti più generali descritti nella documentazione di 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.

Carico di lavoro di migrazione inizialeInitial migration workload

Gli ambienti Netezza legacy in genere evolvono nel tempo per includere più aree di interesse e carichi di lavoro misti.Legacy Netezza environments typically evolve over time to encompass multiple subject areas and mixed workloads. Quando si decide dove avviare un progetto di migrazione iniziale, è consigliabile scegliere un'area che:When you are deciding where to start on an initial migration project, it makes sense to choose an area that:

  • Dimostra la redditività della migrazione alla sinapsi di Azure fornendo rapidamente i vantaggi del nuovo ambiente.Proves the viability of migrating to Azure Synapse by quickly delivering the benefits of the new environment.
  • Consente al personale tecnico interno di acquisire esperienza con nuovi processi e strumenti in modo che possano usarli per eseguire la migrazione di altre aree.Allows in-house technical staff to gain experience with new processes and tools so that they can use them to migrate other areas.
  • Consente di creare un modello basato sugli strumenti e i processi correnti da usare per la migrazione aggiuntiva dall'ambiente Netezza di origine.Creates a template based on the current tools and processes to use in additional migration from the source Netezza environment.

Un buon candidato per una migrazione iniziale da un ambiente Netezza che supportava questi obiettivi è in genere quello che implementa un carico di lavoro Power BI/Analytics invece che un carico di lavoro 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. Il carico di lavoro deve avere un modello di dati di cui è possibile eseguire la migrazione con modifiche minime, ad esempio uno schema a stella o a fiocco di neve.The workload should have a data model that can be migrated with minimal modifications, such as a star or snowflake schema.

Per quanto riguarda le dimensioni, è importante che il volume di dati migrato nell'esercizio iniziale sia sufficiente per dimostrare le funzionalità e i vantaggi dell'ambiente sinapsi di Azure con un breve periodo di tempo per dimostrare il valore.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. Le dimensioni che in genere soddisfano i requisiti sono comprese tra 1 terabyte (TB) e 10 TB.The size that typically meets the requirements is in the range of 1 terabyte (TB) to 10 TB.

Un approccio per il progetto di migrazione iniziale che riduce al minimo il rischio e il tempo di implementazione consiste nel limitare l'ambito della migrazione ai Data Mart.An approach for the initial migration project that minimizes risk and implementation time is to confine the scope of the migration to data marts. Questo approccio è un valido punto di partenza perché limita chiaramente l'ambito della migrazione e in genere può essere eseguito su una breve scala cronologica.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. Una migrazione iniziale solo dei data mart non risolve problemi più ampi come la migrazione di dati ETL e cronologici.An initial migration of data marts only doesn't address broader concerns like how to migrate ETL and historical data. È necessario risolvere queste aree nelle fasi successive e quindi eseguire il recupero del livello di data mart migrato con i dati e i processi necessari per compilarli.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.

Approccio Lift-and-Shift rispetto a un approccio gradualeLift-and-shift approach vs. phased approach

Indipendentemente dai driver e dall'ambito scelti per la migrazione, è possibile scegliere tra due tipi generali di migrazione:Regardless of the drivers and scope that you choose for your migration, you can choose from two general types of migration:

  • Approccio Lift-and-Shift: Con questo approccio, il modello di dati esistente, ad esempio uno schema a stella, viene migrato senza modifiche alla nuova piattaforma di Azure sinapsi.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. In questo scenario, l'enfasi è sulla riduzione dei rischi e sul tempo necessario per eseguire la migrazione riducendo il lavoro da eseguire per ottenere i vantaggi derivanti dal passaggio all'ambiente cloud di 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.

    Questo approccio è ideale per gli ambienti Teradata esistenti in cui è necessario eseguire la migrazione di un singolo data mart e se i dati sono già in uno schema a stella o a fiocco di neve ben progettato.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. Questo approccio è una scelta ottimale anche se si hanno pressioni in termini di tempo e costi per passare a un ambiente cloud più moderno.This approach is a good choice also if you have time and cost pressures to move to a more modern cloud environment.

  • Approccio in più fasi che incorpora modifiche: Quando un warehouse legacy si è evoluto nel tempo, potrebbe essere necessario riutilizzare il data warehouse per mantenere le prestazioni necessarie o per supportare nuove origini dati come i flussi Internet.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. La migrazione a sinapsi di Azure per i vantaggi noti di un ambiente cloud scalabile potrebbe essere considerata parte del processo di riprogettazione.Migrating to Azure Synapse for the well-known benefits of a scalable cloud environment might be considered part of the reengineering process. Questo processo potrebbe includere la modifica del modello di dati sottostante, ad esempio il passaggio da un modello Inmon all'insieme di credenziali dati di Azure.This process might include changing the underlying data model, such as moving from an Inmon model to Azure Data Vault.

    L'approccio consigliato consiste nell'spostare inizialmente il modello di dati esistente così com'è in Azure.The approach we recommend is to initially move the existing data model as-is to Azure. Sfruttare quindi i vantaggi delle prestazioni e della flessibilità dei servizi di Azure per applicare le modifiche di riprogettazione senza influire sul sistema di origine esistente.Then, take advantage of the performance and flexibility of Azure services to apply the reengineering changes without affecting the existing source system.

Migrazione di metadatiMetadata migration

È opportuno automatizzare e orchestrare il processo di migrazione usando le funzionalità dell'ambiente Azure.It makes sense to automate and orchestrate the migration process by using the capabilities of the Azure environment. Questo approccio riduce al minimo l'effetto sull'ambiente Netezza esistente, che potrebbe essere già in esecuzione vicino alla capacità completa.This approach minimizes the effect on the existing Netezza environment, which might already be running close to full capacity.

Azure Data Factory è un servizio di integrazione di dati basato sul cloud.Azure Data Factory is a cloud-based data integration service. È possibile utilizzare Data Factory per creare flussi di lavoro basati sui dati nel cloud per orchestrare e automatizzare lo spostamento e la trasformazione dei dati.You can use Data Factory to create data-driven workflows in the cloud to orchestrate and automate data movement and data transformation. Data Factory pipeline possono inserire dati da archivi dati diversi e quindi elaborare e trasformare i dati usando servizi di calcolo come Azure HDInsight per Apache Hadoop e Apache Spark, Azure Data Lake Analytics e 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. Per iniziare, creare i metadati per elencare le tabelle di dati di cui si vuole eseguire la migrazione, con le rispettive posizioni, quindi usare Data Factory funzionalità per gestire il processo di migrazione.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.

Differenze di progettazione tra Netezza e la sinapsi di AzureDesign differences between Netezza and Azure Synapse

Quando si pianifica la migrazione da un ambiente Netezza legacy a una sinapsi di Azure, è importante prendere in considerazione le differenze di progettazione tra le due piattaforme.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.

Confronto tra più database e un singolo database e schemiMultiple databases vs. a single database and schemas

In un ambiente Netezza possono esistere più database distinti per diverse parti dell'ambiente globale.In a Netezza environment, you might have multiple, separate databases for different parts of the overall environment. Ad esempio, è possibile disporre di un database separato per le tabelle di gestione temporanea e di inserimento dei dati, un database per le tabelle di warehouse core e un altro database per i data mart, talvolta denominato livello semantico.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. L'elaborazione di database distinti come pipeline ETL/ELT in Azure sinapsi potrebbe richiedere l'implementazione di join tra database e lo sviluppo di dati tra database distinti.Processing separate databases as ETL/ELT pipelines in Azure Synapse might require implementing cross-database joins and moving data between the separate databases.

L'ambiente di Azure sinapsi dispone di un database singolo.The Azure Synapse environment has a single database. Gli schemi vengono usati per separare le tabelle in gruppi logicamente distinti.Schemas are used to separate tables into logically separate groups. Si consiglia di usare una serie di schemi nella sinapsi di Azure di destinazione per simulare tutti i database distinti migrati da Netezza.We recommend that you use a series of schemas in the target Azure Synapse to mimic any separate databases that you migrate from Netezza. Se si utilizzano gli schemi nell'ambiente Netezza, potrebbe essere necessario utilizzare una nuova convenzione di denominazione per spostare le tabelle e le viste Netezza esistenti nel nuovo ambiente.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. Ad esempio, è possibile concatenare i nomi di tabella e dello schema Netezza esistenti nel nuovo nome della tabella di Azure sinapsi, quindi utilizzare i nomi degli schemi nel nuovo ambiente per mantenere i nomi di database separati originali.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.

Un'altra opzione consiste nell'utilizzare viste SQL sulle tabelle sottostanti per mantenere le strutture logiche.Another option is to use SQL views over the underlying tables to maintain the logical structures. L'utilizzo delle viste SQL presenta alcuni potenziali svantaggi:There are some potential downsides to using SQL views:

  • Le visualizzazioni in sinapsi di Azure sono di sola lettura, pertanto è necessario apportare eventuali aggiornamenti ai dati nelle tabelle di base sottostanti.Views in Azure Synapse are read-only, so you must make any updates to the data on the underlying base tables.
  • Se esistono già livelli di viste, l'aggiunta di un altro livello di visualizzazioni potrebbe influire sulle prestazioni.If layers of views already exist, adding another layer of views might affect performance.

TabelleTables

Quando si esegue la migrazione di tabelle tra tecnologie diverse, si spostano fisicamente solo i dati non elaborati e i metadati che lo descrivono tra i due ambienti.When you migrate tables between different technologies, you physically move only raw data and the metadata that describes it between the two environments. Non si esegue la migrazione di elementi di database come gli indici dal sistema di origine perché potrebbero non essere necessari o possono essere implementati in modo diverso nel nuovo ambiente.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.

Tuttavia, la comprensione della posizione in cui le ottimizzazioni delle prestazioni, come gli indici, sono state usate nell'ambiente di origine può essere utile per individuare il punto in cui è possibile ottimizzare le prestazioni nel nuovo ambiente.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. Se, ad esempio, le query nell'ambiente Netezza di origine usano spesso mappe di zona, è possibile concludere che sarebbe vantaggioso creare un indice non cluster nell'ambiente di Azure sinapsi di cui è stata eseguita la migrazione o che l'uso di altre tecniche di ottimizzazione delle prestazioni native come la replica della tabella potrebbe essere preferibile alla creazione di un indice simile a.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.

Tipi di oggetto di database Netezza non supportatiUnsupported Netezza database object types

Netezza implementa alcuni oggetti di database non supportati direttamente in sinapsi di Azure.Netezza implements some database objects that aren't directly supported in Azure Synapse. Tuttavia, la sinapsi di Azure offre metodi che è possibile usare per ottenere la stessa funzionalità nel nuovo ambiente, come descritto nell'elenco seguente:However, Azure Synapse offers methods that you can use to achieve the same functionality in the new environment, as described in the following list:

  • Mappe delle zone: In Netezza, le mappe delle zone vengono create e gestite automaticamente per alcuni tipi di colonne.Zone maps: In Netezza, zone maps are automatically created and maintained for some column types. Per limitare la quantità di dati da analizzare, le mappe delle zone vengono usate in fase di query nei tipi di colonna seguenti:Zone maps are used at query time on the following column types to restrict the amount of data to be scanned:

    • INTEGER colonne di lunghezza pari a 8 byte.INTEGER columns that are a length of 8 bytes or less
    • Colonne temporali, tra cui DATE , TIME e TIMESTAMPTemporal columns, including DATE, TIME, and TIMESTAMP
    • CHAR colonne, se fanno parte di una vista materializzata e incluse nella ORDER BY clausolaCHAR columns, if they are part of a materialized view and included in the ORDER BY clause

    Per individuare le colonne con mapping zone, è possibile utilizzare l'utilità nz_zonemap.You can find out which columns have zone maps by using the nz_zonemap utility. L'utilità fa parte del Toolkit NZ.The utility is part of the NZ Toolkit.

    La sinapsi di Azure non usa le mappe di zona, ma è possibile ottenere risultati simili usando i tipi di indice definiti dall'utente o il partizionamento.Azure Synapse doesn't use zone maps, but you can achieve similar results by using user-defined index types or partitioning.

  • Tabelle di base cluster (CBTs): In Netezza, il token CBT più comune è la tabella dei fatti, che include miliardi di record.Clustered base tables (CBTs): In Netezza, the most common CBT is the fact table, which has billions of records. L'analisi di una tabella di questo tipo di grandi dimensioni richiede tempi di elaborazione lunghi perché potrebbe essere necessaria un'analisi completa della tabella per ottenere i record pertinenti.Scanning such a huge table requires a long processing time because a full table scan might be needed to get relevant records. Organizzando i record in CBTs restrittivi, Netezza è in grado di raggruppare i record negli extent o nelle vicinanze.By organizing records in restrictive CBTs, Netezza can group records in the same or nearby extents. Il processo crea anche mappe delle zone che migliorano le prestazioni riducendo la quantità di dati da analizzare.The process also creates zone maps that improve performance by reducing the amount of data to scan.

    In sinapsi di Azure è possibile ottenere un risultato simile tramite il partizionamento o con altri tipi di indice.In Azure Synapse, you can achieve a similar result through partitioning or by using other index types.

  • Viste materializzate: Netezza consiglia agli utenti di creare una o più visualizzazioni materializzate su tabelle di grandi dimensioni con molte colonne e in cui solo alcune colonne vengono utilizzate regolarmente nelle query.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. Le viste materializzate vengono gestite automaticamente dal sistema quando vengono aggiornati i dati nella tabella di base.Materialized views are automatically maintained by the system when data in the base table is updated.

    Attualmente, Microsoft offre supporto in anteprima per le visualizzazioni materializzate, con la stessa funzionalità di Netezza, in sinapsi di Azure.Currently, Microsoft offers preview support for materialized views, with the same functionality as Netezza, in Azure Synapse.

  • Mapping dei tipi di dati: La maggior parte dei tipi di dati Netezza ha un equivalente diretto in sinapsi di Azure.Data type mapping: Most Netezza data types have a direct equivalent in Azure Synapse. La tabella seguente illustra i tipi di dati e gli approcci consigliati per il mapping dei tipi di dati.The following table shows the data types and the recommended approaches for mapping the data types.

    Alcuni fornitori di terze parti offrono strumenti e servizi che consentono di automatizzare le attività di migrazione, incluso il mapping dei tipi di dati.Some third-party vendors offer tools and services that can automate migration tasks, including data type mapping. Se nell'ambiente Netezza è già usato uno strumento ETL di terze parti, ad esempio informatica o Talend, è possibile usare lo strumento per implementare le trasformazioni dei dati necessarie.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.

  • Sintassi DML (Data Manipulation Language) di SQL: È necessario tenere presenti alcune differenze nella sintassi SQL DML tra Netezza SQL e la sinapsi di Azure.SQL Data Manipulation Language (DML) syntax: You should be aware of a few differences in SQL DML syntax between Netezza SQL and Azure Synapse.

    Di seguito sono riportate alcune funzioni chiave e il modo in cui sono diverse:Here are some key functions and how they are different:

    • STRPOS: In Netezza la STRPOS funzione restituisce la posizione di una sottostringa all'interno di una stringa.STRPOS: In Netezza, the STRPOS function returns the position of a substring within a string. L'equivalente in sinapsi di Azure è la CHARINDEX funzione e l'ordine degli argomenti è invertito.The equivalent in Azure Synapse is the CHARINDEX function, and the order of the arguments is reversed.

      In Netezza:In Netezza:

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

      Viene sostituito con il codice seguente in sinapsi di Azure:Is replaced with the following code in Azure Synapse:

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

    • AGE: Netezza supporta l' AGE operatore per fornire l'intervallo tra due valori temporali (ad esempio, timestamp e date).AGE: Netezza supports the AGE operator to give the interval between two temporal values (for example, timestamps and dates). Ad esempio:For example:

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

      È possibile ottenere lo stesso risultato in una sinapsi di Azure usando DATEDIFF (si noti la sequenza di rappresentazione della 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 USA NOW() per rappresentare CURRENT_TIMESTAMP in sinapsi di Azure.NOW(): Netezza uses NOW() to represent CURRENT_TIMESTAMP in Azure Synapse.

Funzioni, stored procedure e sequenzeFunctions, stored procedures, and sequences

Quando si esegue la migrazione di un data warehouse da un ambiente legacy maturo come Netezza, spesso è necessario eseguire la migrazione di elementi diversi dalle semplici tabelle e viste al nuovo ambiente di destinazione.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. Esempi di elementi non tabella in Netezza che potrebbe essere necessario migrare alla sinapsi di Azure sono funzioni, stored procedure e sequenze.Examples of non-table elements in Netezza that you might need to migrate to Azure Synapse are functions, stored procedures, and sequences. Durante la fase di preparazione della migrazione, è necessario creare un inventario di oggetti da migrare.During the preparation phase of the migration, you should create an inventory of objects to migrate. Nel piano del progetto definire il metodo di gestione di tutti gli oggetti e allocare le risorse appropriate per la migrazione.In the project plan, define the method of handling all objects and allocate the appropriate resources for their migration.

È possibile che nell'ambiente Azure siano presenti servizi che sostituiscono la funzionalità implementata come funzioni o stored procedure nell'ambiente Netezza.You might find services in the Azure environment that replace the functionality implemented as functions or stored procedures in the Netezza environment. In genere, è più efficiente usare le funzionalità di Azure predefinite anziché ricodificare le funzioni di Netezza.Usually, it's more efficient to use the built-in Azure capabilities instead of recoding the Netezza functions.

Inoltre, i fornitori di terze parti offrono strumenti e servizi che consentono di automatizzare la migrazione di funzioni, stored procedure e sequenze da Netezza.Also, third-party vendors offer tools and services that can automate the migration of functions, stored procedures, and sequences from Netezza. Gli esempi includono Qlik (in precedenza Attunity) e WhereScape.Examples include Qlik (formerly Attunity) and WhereScape.

Di seguito sono riportate alcune informazioni aggiuntive sulla migrazione di funzioni, stored procedure e sequenze:Here's some additional information about migrating functions, stored procedures, and sequences:

  • Funzioni: Come la maggior parte dei prodotti di database, Netezza supporta le funzioni di sistema e le funzioni definite dall'utente in un'implementazione SQL.Functions: Like most database products, Netezza supports system functions and user-defined functions in a SQL implementation. Quando si esegue la migrazione delle funzioni di sistema comuni a un'altra piattaforma di database come le sinapsi di Azure, sono in genere disponibili nel nuovo ambiente e possono essere migrate senza modifiche.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. Se le funzioni di sistema hanno una sintassi leggermente diversa nel nuovo ambiente, in genere è possibile automatizzare le modifiche necessarie.If system functions have slightly different syntax in the new environment, you usually can automate the required changes.

    Potrebbe essere necessario ricodificare funzioni arbitrarie definite dall'utente e funzioni di sistema che non hanno equivalente nel nuovo ambiente.You might need to recode arbitrary user-defined functions and system functions that have no equivalent in the new environment. Usare le lingue disponibili nel nuovo ambiente.Use the languages that are available in the new environment. Le funzioni definite dall'utente Netezza vengono codificate tramite nzLua o C++.Netezza user-defined functions are coded by using nzLua or C++. La sinapsi di Azure usa il linguaggio Transact-SQL comune per implementare funzioni definite dall'utente.Azure Synapse uses the popular Transact-SQL language to implement user-defined functions.

  • Stored procedure: Nella maggior parte dei prodotti di database moderni è possibile archiviare le routine nel database.Stored procedures: In most modern database products, you can store procedures n the database. Un stored procedure contiene in genere istruzioni SQL e una logica procedurale.A stored procedure typically contains SQL statements and some procedural logic. Potrebbe inoltre restituire dati o uno stato.It might also return data or a status.

    Netezza fornisce il linguaggio NZPLSQL, basato su PL/pgSQL, per le stored procedure.Netezza provides the NZPLSQL language, based on PL/pgSQL, for stored procedures. La sinapsi di Azure supporta stored procedure tramite T-SQL.Azure Synapse supports stored procedures by using T-SQL. Se si esegue la migrazione di stored procedure a una sinapsi di Azure, è necessario ricodificarle usando T-SQL.If you migrate stored procedures to Azure Synapse, you must recode them by using T-SQL.

  • Sequenze: In Netezza una sequenza è un oggetto di database denominato creato tramite un' CREATE SEQUENCE istruzione.Sequences: In Netezza, a sequence is a named database object that's created via a CREATE SEQUENCE statement. Gli oggetti possono fornire il valore univoco tramite il NEXT() metodo.Objects can provide the unique value via the NEXT() method. È possibile utilizzare i valori per generare numeri univoci come valori di chiave surrogata per i valori di chiave primaria.You can use values to generate unique numbers as surrogate key values for primary key values.

    La sinapsi di Azure non supporta CREATE SEQUENCE .Azure Synapse doesn't support CREATE SEQUENCE. In sinapsi di Azure le sequenze vengono gestite usando colonne Identity o codice SQL per creare il numero di sequenza successivo in una serie.In Azure Synapse, sequences are handled by using identity columns or SQL code to create the next sequence number in a series.

Metadati ed estrazione dei datiMetadata and data extraction

Quando si pianifica come estrarre i metadati e i dati dall'ambiente Netezza, tenere presenti le seguenti informazioni:Consider the following information when you plan how to extract metadata and data from the Netezza environment:

  • Generazione DDL (Data Definition Language): È possibile modificare Netezza CREATE TABLE e CREATE VIEW script esistenti per creare le definizioni equivalenti, con i tipi di dati modificati, se necessario, come descritto in precedenza.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. Questa attività comporta in genere la rimozione o la modifica di clausole specifiche per Netezza, ad esempio ORGANIZE ON .This task usually involves removing or modifying any clauses that are specific to Netezza, like ORGANIZE ON.

    In Netezza le informazioni che specificano le definizioni delle tabelle e delle viste correnti vengono mantenute nelle tabelle del catalogo di sistema.In Netezza, the information that specifies the current table and view definitions is maintained in system catalog tables. Le tabelle del catalogo di sistema rappresentano la migliore fonte di informazioni poiché le tabelle sono probabilmente aggiornate e complete.System catalog tables are the best source of the information because the tables likely are up to date and complete. La documentazione gestita dall'utente potrebbe non essere sincronizzata con le definizioni di tabella correnti.User-maintained documentation might not be in sync with current table definitions.

È possibile accedere alle tabelle del catalogo di sistema in Netezza usando un'utilità come nz_ddl_table.You can access system catalog tables in Netezza by using a utility like nz_ddl_table. È possibile usare le tabelle per generare CREATE TABLE istruzioni DDL, che è quindi possibile modificare per le tabelle equivalenti in sinapsi di Azure.You can use the tables to generate CREATE TABLE DDL statements, which you can then edit for the equivalent tables in Azure Synapse. La migrazione di terze parti e gli strumenti ETL utilizzano anche le informazioni del catalogo per ottenere gli stessi risultati.Third-party migration and ETL tools also use the catalog information to achieve the same results.

  • Estrazione dei dati: È possibile estrarre dati non elaborati per eseguire la migrazione da una tabella Netezza esistente in un file flat e delimitato usando utilità Netezza standard come nzsql e nzunload e usando le tabelle esterne.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. Comprimere i file usando gzip e quindi usare AzCopy o un servizio di trasporto dati di Azure come Azure Data Box per caricare i file nell'archiviazione BLOB di Azure.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.

    Durante un esercizio di migrazione è importante estrarre i dati nel modo più efficiente possibile.During a migration exercise, it's important to extract data as efficiently as possible. L'approccio consigliato per Netezza consiste nell'usare le tabelle esterne, che è anche il metodo più veloce.The recommended approach for Netezza is to use external tables, which also is the fastest method. È possibile completare più estrazioni in parallelo per ottimizzare la velocità effettiva per l'estrazione dei dati.You can complete multiple extracts in parallel to maximize the throughput for data extraction.

Ecco un semplice esempio di estrazione di una tabella esterna:Here's a simple example of an external table extract:

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

Se si dispone di una larghezza di banda di rete sufficiente, è possibile estrarre i dati direttamente da un sistema Netezza locale nelle tabelle delle sinapsi di Azure o nell'archiviazione dati di Azure usando Data Factory processi o la migrazione dei dati di terze parti o prodotti 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.

I formati di dati consigliati per i dati estratti sono file di testo delimitati (detti anche valori delimitati da virgole), file a colonne di righe ottimizzate o file parquet.Recommended data formats for extracted data are delimited text files (also called comma-separated values), optimized row columnar files, or Parquet files.

Per informazioni più dettagliate sul processo di migrazione dei dati e ETL da un ambiente Netezza, vedere la documentazione di Netezza relativa alla migrazione dei dati ETL e 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.

Suggerimenti per l'ottimizzazione delle prestazioniPerformance-tuning recommendations

Quando si passa alla sinapsi di Azure da un ambiente Netezza, molti dei concetti di ottimizzazione delle prestazioni usati saranno noti.When you move to Azure Synapse from a Netezza environment, many of the performance-tuning concepts you use will be familiar.

Ad esempio, questi concetti sono gli stessi per entrambi gli ambienti:For example, these concepts are the same for both environments:

  • La distribuzione dei dati consente di colocare i dati da unire nello stesso nodo di elaborazione.Data distribution colocates data to be joined onto the same processing node.
  • L'utilizzo del tipo di dati più piccolo per una colonna specifica consente di risparmiare spazio di archiviazione e di accelerare l'elaborazione delle query.Using the smallest data type for a specific column saves storage space and accelerates query processing.
  • Verificare che i tipi di dati di colonne da unire siano identici per ottimizzare l'elaborazione dei join, riducendo la necessità di trasformare i dati per la corrispondenza.Ensuring that data types of columns to be joined are identical optimizes join processing by reducing the need to transform data for matching.
  • Verificare che le statistiche siano aggiornate consente all'utilità di ottimizzazione di produrre il piano di esecuzione migliore.Ensuring that statistics are up to date helps the optimizer produce the best execution plan.

Esistono alcune differenze tra le piattaforme per quanto riguarda l'ottimizzazione.There are some differences between platforms when it comes to optimization. Nell'elenco seguente di raccomandazioni per l'ottimizzazione delle prestazioni sono evidenziate le differenze di implementazione di livello inferiore tra Netezza e la sinapsi di Azure e le alternative per la migrazione:In the following list of performance-tuning recommendations, lower-level implementation differences between Netezza and Azure Synapse, and alternatives for your migration, are highlighted:

  • Opzioni di distribuzione dei dati: In Netezza e in sinapsi di Azure è possibile usare un' CREATE TABLE istruzione per specificare una definizione di distribuzione.Data distribution options: In both Netezza and Azure Synapse, you can use a CREATE TABLE statement to specify a distribution definition. Usare DISTRIBUTE ON per Netezza e DISTRIBUTION = per la sinapsi di Azure.Use DISTRIBUTE ON for Netezza and DISTRIBUTION = for Azure Synapse.

    La sinapsi di Azure fornisce un modo aggiuntivo per ottenere i join locali per i join di tabelle di grandi dimensioni o tabelle di grandi dimensioni, spesso denominati join di tabella delle dimensioni o di tabella dei fatti in un modello a stella schema.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. L'approccio consiste nel replicare la tabella delle dimensioni più piccola in tutti i nodi, garantendo in tal modo che qualsiasi valore della chiave di join per la tabella più grande disponga di una riga di dimensione corrispondente disponibile localmente.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. Il sovraccarico della replica della tabella della dimensione è relativamente basso se le tabelle non sono di grandi dimensioni.The overhead of replicating the dimension table is relatively low if the tables are not large. In questo caso, è preferibile usare l'approccio di distribuzione hash descritto in precedenza.In this case, using the hash distribution approach described earlier is preferable.

  • Indicizzazione dei dati: La sinapsi di Azure offre diverse opzioni di indicizzazione definibili dall'utente, ma le opzioni sono diverse in operazioni e utilizzo rispetto alle mappe di zona gestite dal sistema in 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. Per informazioni sulle opzioni di indicizzazione in sinapsi di Azure, vedere index tables in an Azure sinapsi SQL pool.To learn about the indexing options in Azure Synapse, see Index tables in an Azure Synapse SQL pool.

    Le mappe delle zone gestite dal sistema esistenti nell'ambiente Netezza di origine possono fornire un'indicazione utile del modo in cui vengono usati i dati e fornire un'indicazione delle colonne candidate per l'indicizzazione nell'ambiente sinapsi di Azure.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.

  • Partizionamento dei dati: In un data warehouse aziendale, le tabelle dei fatti potrebbero contenere molti miliardi di righe di dati.Data partitioning: In an enterprise data warehouse, fact tables might contain many billions of rows of data. Il partizionamento è un modo per ottimizzare la manutenzione e l'esecuzione di query in queste tabelle.Partitioning is a way to optimize maintenance and querying in these tables. Suddividendo le tabelle in parti separate si riduce la quantità di dati elaborati in una sola volta.Splitting the tables into separate parts reduces the amount of data processed at one time. Il partizionamento per una tabella è definito nell' CREATE TABLE istruzione.Partitioning for a table is defined in the CREATE TABLE statement.

    Per il partizionamento è possibile utilizzare un solo campo per tabella.Only one field per table can be used for partitioning. Il campo usato per il partizionamento è spesso un campo data perché molte query vengono filtrate per data o per un intervallo di date.The field that's used for partitioning frequently is a date field because many queries are filtered by date or by a date range. È possibile modificare il partizionamento di una tabella dopo il caricamento iniziale.You can change the partitioning of a table after initial load. Per modificare il partizionamento di una tabella, creare nuovamente la tabella con una nuova distribuzione che utilizza l' CREATE TABLE AS SELECT istruzione.To change a table's partitioning, re-create the table with a new distribution that uses the CREATE TABLE AS SELECT statement. Per una descrizione dettagliata del partizionamento in sinapsi di Azure, vedere tabelle di partizionamento in un pool SQL di sinapsi di Azure.For a detailed description of partitioning in Azure Synapse, see Partition tables in an Azure Synapse SQL pool.

  • Polibase per il caricamento dei dati: La polibase è il metodo più efficiente da usare per caricare grandi quantità di dati in un warehouse.PolyBase for data loading: PolyBase is the most efficient method to use to load large amounts of data into a warehouse. È possibile usare la polibase per caricare i dati in flussi paralleli.You can use PolyBase to load data in parallel streams.

  • Classi di risorse per la gestione del carico di lavoro: La sinapsi di Azure usa le classi di risorse per gestire i carichi di lavoro.Resource classes for workload management: Azure Synapse uses resource classes to manage workloads. In generale, le classi di risorse di grandi dimensioni forniscono prestazioni di query individuali migliori.In general, large resource classes provide better individual query performance. Classi di risorse più piccole offrono livelli di concorrenza più elevati.Smaller resource classes give you higher levels of concurrency. È possibile utilizzare le viste a gestione dinamica per monitorare l'utilizzo per garantire che le risorse appropriate vengano utilizzate in modo efficiente.You can use dynamic management views to monitor utilization to help ensure that the appropriate resources are used efficiently.

Passaggi successiviNext steps

Per altre informazioni sull'implementazione di una migrazione Netezza, rivolgersi all'account Microsoft rappresentante sulle offerte di migrazione locali.For more information about implementing a Netezza migration, talk with your Microsoft account representative about on-premises migration offers.