Решения и миграция Azure синапсе Analytics для NetezzaAzure Synapse Analytics solutions and migration for Netezza

Так как поддержка IBM для Netezza заканчивается, многие организации, в которых в настоящее время используются системы хранилища данных Netezza, стремятся использовать преимущества инновационного облака, инфраструктуры как услуги, а также предложения платформы как услуги в более новых средах, таких как 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. Многие организации готовы выполнить шаг сдвига дорогостоящих задач, таких как обслуживание инфраструктуры и разработка платформ, для поставщика облачных служб.Many organizations are ready to take the step of shifting expensive tasks like infrastructure maintenance and platform development to a cloud provider.

Azure синапсе Analytics — это неограниченная служба аналитики, которая объединяет корпоративные хранилища данных и аналитику больших данных.Azure Synapse Analytics is a limitless analytics service that brings together enterprise data warehousing and big data analytics. Это дает возможность запрашивать данные на ваших условиях в масштабе, используя либо бессерверные, либо подготовленные ресурсы.It gives you the freedom to query data on your terms at scale by using either serverless on-demand or provisioned resources. Узнайте, что нужно спланировать при миграции устаревшей системы Netezza в Azure синапсе.Learn what to plan for as you migrate a legacy Netezza system to Azure Synapse.

Netezza и Azure синапсе похожи в том, что каждая из них является базой данных SQL, предназначенной для использования методов массовой параллельной обработки для достижения высокой производительности запросов на больших объемах данных.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. Однако две платформы различаются в ключевых аспектах:But the two platforms are different in key aspects:

  • Устаревшие системы Netezza устанавливаются локально и используют собственное оборудование.Legacy Netezza systems are installed on-premises, and they use proprietary hardware. Azure синапсе — это облачная служба, которая использует ресурсы вычислений и хранилища Azure.Azure Synapse is cloud-based and uses Azure compute and storage resources.
  • Обновление конфигурации Netezza — это основная задача, которая требует дополнительного физического оборудования и потенциально длительной перенастройки или дампа базы данных, а также перезагрузки.Upgrading a Netezza configuration is a major task that involves extra physical hardware and a potentially lengthy database reconfiguration or dump and reload. В Azure синапсе ресурсы хранилища и вычислений являются отдельными.In Azure Synapse, storage and compute resources are separate. Вы можете использовать эластичную масштабируемость Azure для независимого масштабирования.You can use the elastic scalability of Azure to independently scale up or down.
  • Без физической системы для поддержки можно приостановить или изменить размер Azure синапсе, чтобы сократить использование ресурсов и затрат.Without a physical system to support, you can pause or resize Azure Synapse as needed to reduce resource utilization and cost. В Azure у вас есть доступ к глобально доступной, высокозащищенной и масштабируемой облачной среде, которая включает Azure синапсе в экосистему поддерживаемых средств и возможностей.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.

В этой статье рассматривается миграция схемы с представлением для получения эквивалентной или повышенной производительности перенесенного хранилища данных Netezza и киосков данных в 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. Мы рассчитаем вопросы, которые применяются специально для миграции из существующей среды Netezza.We consider concerns that apply specifically to migrating from an existing Netezza environment.

На высоком уровне процесс миграции включает в себя шаги, перечисленные в следующей таблице.At a high level, the migration process includes the steps that are listed in the following table:

ПодготовкаPreparation МиграцияMigration После миграцииPost-migration
  • Определение области действия: что нужно перенести?Define scope: What do we want to migrate?
  • Создание инвентаризации данных и процессов для миграции.Build an inventory of data and processes to migrate.
  • Определите любые изменения модели данных.Define any data model changes.
  • Укажите лучшие средства и функции Azure и сторонних производителей для использования.Identify the best Azure and third-party tools and features to use.
  • Заблаговременное обучение персонала на новой платформе.Train staff early on the new platform.
  • Настройте целевую платформу Azure.Set up the Azure target platform.
  • Начните с небольших и простых.Start small and simple.
  • Автоматизируйте, где это возможно.Automate where possible.
  • Используйте встроенные средства и функции Azure, чтобы сократить усилия по переносу.Use Azure built-in tools and features to reduce the migration effort.
  • Перенесите метаданные для таблиц и представлений.Migrate metadata for tables and views.
  • Перенос соответствующих исторических данных.Migrate relevant historical data.
  • Миграция и реструктуризация хранимых процедур и бизнес-процессов.Migrate or refactor stored procedures and business processes.
  • Миграция или рефакторинг процессов добавочной загрузки ETL или ELT.Migrate or refactor ETL or ELT incremental load processes.
  • Отслеживайте и документируйте все этапы процесса миграции.Monitor and document all stages of the migration process.
  • Используйте интерфейс для создания шаблона для будущих миграций.Use experience gained to build a template for future migrations.
  • При необходимости это модель данных, использующая производительность и масштабируемость новой платформы.Reengineer the data model, if necessary, by using the new platform's performance and scalability.
  • Тестирование приложений и средств запросов.Test applications and query tools.
  • Производительность и оптимизация производительности запросов.Benchmark and optimize query performance.
  • При миграции из устаревшей среды Netezza в Azure синапсе необходимо учитывать некоторые конкретные факторы, а также более общие субъекты, описанные в документации по 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.

    Начальная Рабочая нагрузка миграцииInitial migration workload

    Устаревшие среды Netezza обычно развиваются с течением времени, чтобы охватывать несколько областей субъектов и смешанных рабочих нагрузок.Legacy Netezza environments typically evolve over time to encompass multiple subject areas and mixed workloads. При принятии решения о том, где начать с первоначального проекта миграции, имеет смысл выбрать область, которая:When you are deciding where to start on an initial migration project, it makes sense to choose an area that:

    • Подтверждает жизнеспособность перехода на Azure синапсе, быстро предоставляя преимущества новой среды.Proves the viability of migrating to Azure Synapse by quickly delivering the benefits of the new environment.
    • Позволяет внутренним техническим сотрудникам получить опыт работы с новыми процессами и инструментами, чтобы они могли использовать их для переноса других областей.Allows in-house technical staff to gain experience with new processes and tools so that they can use them to migrate other areas.
    • Создает шаблон на основе текущих средств и процессов для использования в дополнительных миграциях из исходной среды Netezza.Creates a template based on the current tools and processes to use in additional migrations from the source Netezza environment.

    Хорошим кандидатом для первоначальной миграции из среды Netezza, которая поддерживала эти цели, обычно является среда, которая реализует рабочую нагрузку Power BI или аналитики, а не рабочую нагрузку 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. Рабочая нагрузка должна иметь модель данных, которая может быть перенесена с минимальными изменениями, например со схемой «звезда» или «снежинка».The workload should have a data model that can be migrated with minimal modifications, such as a star or snowflake schema.

    В качестве размера важно, чтобы объем данных, переносимый в начальном упражнении, был достаточно большим, чтобы продемонстрировать возможности и преимущества среды Azure синапсе с коротким временем для демонстрации ценности.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. Размер, который обычно соответствует требованиям, находится в диапазоне от 1 терабайта (ТБ) до 10 ТБ.The size that typically meets the requirements is in the range of 1 terabyte (TB) to 10 TB.

    Подход к первоначальному проекту миграции, который уменьшает риск и время реализации, позволяет ограничить область миграции до киосков данных.An approach for the initial migration project that minimizes risk and implementation time is to confine the scope of the migration to data marts. Этот подход является хорошей отправной точкой, поскольку он четко ограничивает область миграции и обычно может быть достигнут на коротком шкале времени.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. Первоначальная миграция киосков данных не позволяет устранить более широкие проблемы, такие как миграция ETL и исторических данных.An initial migration of data marts only doesn't address broader concerns like how to migrate ETL and historical data. Эти области необходимо устранить на последующих этапах и проделать перенесенный слой киоска данных данными и процессами, необходимыми для их построения.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.

    Подход с приближением и сдвигом в сравнении с поэтапным подходомLift-and-shift approach vs. phased approach

    Независимо от драйверов и областей, выбранных для миграции, можно выбрать один из двух общих типов миграции:Regardless of the drivers and scope that you choose for your migration, you can choose from two general types of migration:

    • Подход с нулификацией и сдвигом: При таком подходе существующая модель данных, например схема «звезда», переносится в новую платформу Azure синапсе без изменений.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. В этом сценарии основное внимание уделяется минимизации риска и времени, затрачиваемого на миграцию, за счет сокращения работы, которая должна быть выполнена для достижения преимуществ перехода в облачную среду 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.

      Этот подход хорошо подходит для существующих сред Teradata, в которых предполагается перенос одного киоска данных, и если данные уже находятся в хорошо спроектированной схеме «звезда» или «снежинка».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. Этот подход хорошо подходит для тех, кто испытывает затраты времени и затрат на переход в более современные облачные среды.This approach is a good choice also if you have time and cost pressures to move to a more modern cloud environment.

    • Поэтапный подход, включающий изменения: Когда хранилище прежних версий постепенно развивается, может потребоваться перехватить хранилище данных для поддержания необходимой производительности или поддержки новых источников данных, таких как потоки 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. Переход на Azure синапсе для широко известных преимуществ масштабируемой облачной среды может рассматриваться как часть процесса реконструирования.Migrating to Azure Synapse for the well-known benefits of a scalable cloud environment might be considered part of the reengineering process. Этот процесс может включать изменение базовой модели данных, например переход с модели Inmon на хранилище данных Azure.This process might include changing the underlying data model, such as moving from an Inmon model to Azure Data Vault.

      Рекомендуемый подход заключается в первоначальном перемещении существующей модели данных "как есть" в Azure.The approach we recommend is to initially move the existing data model as-is to Azure. Затем воспользуйтесь преимуществами производительности и гибкости служб Azure, чтобы применить изменения, внесенные в процессе реконструирования, не затрагивая существующую исходную систему.Then, take advantage of the performance and flexibility of Azure services to apply the reengineering changes without affecting the existing source system.

    Миграция метаданныхMetadata migration

    Есть смысл автоматизировать и управлять процессом миграции, используя возможности среды Azure.It makes sense to automate and orchestrate the migration process by using the capabilities of the Azure environment. Такой подход уменьшает воздействие на существующую среду Netezza, которая, возможно, уже работает, близко к полной емкости.This approach minimizes the effect on the existing Netezza environment, which might already be running close to full capacity.

    Фабрика данных Azure — это облачная служба интеграции данных.Azure Data Factory is a cloud-based data integration service. Фабрику данных можно использовать для создания управляемых данными рабочих процессов в облаке для координации и автоматизации перемещения и преобразования данных.You can use Data Factory to create data-driven workflows in the cloud to orchestrate and automate data movement and data transformation. Конвейеры фабрики данных могут получать данные из разнородных хранилищ данных, а затем обрабатывать и преобразовывать данные с помощью таких служб вычислений, как Azure HDInsight, для Apache Hadoop и Apache Spark, Azure Data Lake Analytics и Машинное обучение Azure.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. Начните с создания метаданных для перечисления таблиц данных, которые необходимо перенести, с их расположением, а затем используйте возможности фабрики данных для управления процессом миграции.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.

    Различия в проектировании между Netezza и Azure синапсеDesign differences between Netezza and Azure Synapse

    При планировании миграции из устаревшей среды Netezza в Azure синапсе важно учитывать различия в проектировании между двумя платформами.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.

    Сравнение нескольких баз данных и одной базы данных и схемMultiple databases vs. a single database and schemas

    В среде Netezza может быть несколько отдельных баз данных для различных частей общей среды.In a Netezza environment, you might have multiple, separate databases for different parts of the overall environment. Например, у вас может быть отдельная база данных для приема данных и промежуточных таблиц, база данных для базовых таблиц хранилища и другая база данных для киосков данных, которая иногда называется семантическим слоем.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. Для обработки отдельных баз данных в качестве конвейеров ETL/ELT в Azure синапсе может потребоваться реализация межбазовых соединений и перемещение данных между отдельными базами данных.Processing separate databases as ETL/ELT pipelines in Azure Synapse might require implementing cross-database joins and moving data between the separate databases.

    Среда Azure синапсе имеет одну базу данных.The Azure Synapse environment has a single database. Схемы используются для разделения таблиц на логически разделенные группы.Schemas are used to separate tables into logically separate groups. Мы рекомендуем использовать набор схем в целевом Синапсее Azure, чтобы имитировать любые отдельные базы данных, переносимые из 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. При использовании схем в среде Netezza может потребоваться использовать новое соглашение об именовании для перемещения существующих таблиц и представлений Netezza в новую среду.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. Например, можно объединить существующие имена схем и таблиц Netezza с новым именем таблицы Azure синапсе, а затем использовать имена схем в новой среде для сохранения исходных имен баз данных.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.

    Другим вариантом является использование представлений SQL в базовых таблицах для поддержки логических структур.Another option is to use SQL views over the underlying tables to maintain the logical structures. Существуют некоторые потенциальные недостатки использования представлений SQL:There are some potential downsides to using SQL views:

    • Представления в Azure синапсе доступны только для чтения, поэтому необходимо внести любые изменения в данные базовых базовых таблиц.Views in Azure Synapse are read-only, so you must make any updates to the data on the underlying base tables.
    • Если уровни представлений уже существуют, добавление другого слоя представлений может повлиять на производительность.If layers of views already exist, adding another layer of views might affect performance.

    ТаблицыTables

    При переносе таблиц между различными технологиями физическим перемещением являются только необработанные данные и метаданные, описывающие их между двумя средами.When you migrate tables between different technologies, you physically move only raw data and the metadata that describes it between the two environments. Вы не переносите элементы базы данных, такие как индексы из исходной системы, так как они могут не потребоваться, или они могут быть реализованы по-разному в новой среде.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.

    Тем не менее, понимание того, где в исходной среде используются оптимизации производительности, такие как индексы, может быть полезным для оптимизации производительности в новой среде.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. Например, если запросы в исходной среде Netezza часто используют карты зон, можно завершить создание некластеризованного индекса в перенесенной среде Azure синапсе или использовать другие методики оптимизации производительности, такие как репликация таблиц, возможно, будет предпочтительнее создать индекс Like.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.

    Неподдерживаемые типы объектов базы данных NetezzaUnsupported Netezza database object types

    Netezza реализует некоторые объекты базы данных, которые не поддерживаются напрямую в Azure синапсе.Netezza implements some database objects that aren't directly supported in Azure Synapse. Однако Azure синапсе предлагает методы, которые можно использовать для достижения тех же функций в новой среде, как описано в следующем списке:However, Azure Synapse offers methods that you can use to achieve the same functionality in the new environment, as described in the following list:

    • Карты зон: В Netezza карты зон создаются автоматически и поддерживаются для некоторых типов столбцов.Zone maps: In Netezza, zone maps are automatically created and maintained for some column types. Карты зон используются во время запроса для следующих типов столбцов, чтобы ограничить объем данных для сканирования:Zone maps are used at query time on the following column types to restrict the amount of data to be scanned:

      • INTEGER столбцы длиной не более 8 байтINTEGER columns that are a length of 8 bytes or less
      • Временные столбцы, включая DATE , TIME и TIMESTAMPTemporal columns, including DATE, TIME, and TIMESTAMP
      • CHAR столбцы, если они являются частью материализованных представлений и включены в ORDER BY предложениеCHAR columns, if they are part of a materialized view and included in the ORDER BY clause

      Сведения о том, какие столбцы содержат карты зон, можно найти с помощью служебной программы nz_zonemap.You can find out which columns have zone maps by using the nz_zonemap utility. Программа является частью набора средств для NZ.The utility is part of the NZ Toolkit.

      Azure синапсе не использует карты зон, но вы можете добиться аналогичных результатов с помощью определяемых пользователем типов индексов или секционирования.Azure Synapse doesn't use zone maps, but you can achieve similar results by using user-defined index types or partitioning.

    • Кластеризованные базовые таблицы (КБТС): В Netezza наиболее распространенной CBT является таблица фактов, которая содержит миллиарды записей.Clustered base tables (CBTs): In Netezza, the most common CBT is the fact table, which has billions of records. Сканирование такой большой таблицы требует длительного времени обработки, поскольку для получения соответствующих записей может потребоваться полное сканирование таблицы.Scanning such a huge table requires a long processing time because a full table scan might be needed to get relevant records. Организуя записи в КБТС, Netezza может группировать записи в одном или соседнем экстенте.By organizing records in restrictive CBTs, Netezza can group records in the same or nearby extents. Процесс также создает карты зон, повышающие производительность, уменьшая объем проверяемых данных.The process also creates zone maps that improve performance by reducing the amount of data to scan.

      В Azure синапсе можно добиться такого же результата, выполнив секционирование или используя другие типы индексов.In Azure Synapse, you can achieve a similar result through partitioning or by using other index types.

    • Материализованные представления: Netezza рекомендует пользователям создавать одно или несколько материализованных представлений для больших таблиц, имеющих много столбцов, и в которых в запросах регулярно используются только несколько столбцов.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. Материализованные представления автоматически обслуживаются системой при обновлении данных в базовой таблице.Materialized views are automatically maintained by the system when data in the base table is updated.

      В настоящее время корпорация Майкрософт предлагает поддержку предварительной версии для материализованных представлений с теми же функциональными возможностями, что и Netezza, в Azure синапсе.Currently, Microsoft offers preview support for materialized views, with the same functionality as Netezza, in Azure Synapse.

    • Сопоставление типов данных: Большинство типов данных Netezza имеют прямой эквивалент в Azure синапсе.Data type mapping: Most Netezza data types have a direct equivalent in Azure Synapse. В следующей таблице показаны типы данных и Рекомендуемые подходы для сопоставления типов данных.The following table shows the data types and the recommended approaches for mapping the data types.

      Некоторые сторонние поставщики предлагают средства и службы, которые могут автоматизировать задачи миграции, включая сопоставление типов данных.Some third-party vendors offer tools and services that can automate migration tasks, including data type mapping. Если в среде Netezza уже используется сторонний инструмент ETL, например Informatica или Таленд, можно использовать это средство для реализации любых необходимых преобразований данных.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.

    • Синтаксис языка обработки данных SQL (DML): Вы должны знать о некоторых различиях в синтаксисе SQL DML между Netezza SQL и 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.

      Ниже приведены некоторые ключевые функции и их отличия.Here are some key functions and how they are different:

      • STRPOS: В Netezza STRPOS функция возвращает расположение подстроки в строке.STRPOS: In Netezza, the STRPOS function returns the position of a substring within a string. Эквивалентом в Azure синапсе является CHARINDEX функция, и порядок аргументов изменяется на обратный.The equivalent in Azure Synapse is the CHARINDEX function, and the order of the arguments is reversed.

        В Netezza:In Netezza:

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

        Заменяется следующим кодом в Azure синапсе:Is replaced with the following code in Azure Synapse:

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

      • AGE: Netezza поддерживает AGE оператор, чтобы задать интервал между двумя временными значениями (например, метки времени и даты).AGE: Netezza supports the AGE operator to give the interval between two temporal values (for example, timestamps and dates). Пример:For example:

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

        Вы можете добиться того же результата в Azure синапсе с помощью DATEDIFF (Обратите внимание на последовательность представления даты):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 использует NOW() для представления CURRENT_TIMESTAMP в Azure синапсе.NOW(): Netezza uses NOW() to represent CURRENT_TIMESTAMP in Azure Synapse.

    Функции, хранимые процедуры и последовательностиFunctions, stored procedures, and sequences

    При переносе хранилища данных из зрелой устаревшей среды, такой как Netezza, часто приходится переносить элементы, отличные от простых таблиц и представлений, в новую целевую среду.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. Примеры элементов, не являющихся таблицами, в Netezza, которые может потребоваться перенести в Azure синапсе, — это функции, хранимые процедуры и последовательности.Examples of non-table elements in Netezza that you might need to migrate to Azure Synapse are functions, stored procedures, and sequences. На этапе подготовки миграции необходимо создать инвентаризацию объектов для миграции.During the preparation phase of the migration, you should create an inventory of objects to migrate. В плане проекта определите метод обработки всех объектов и выделите соответствующие ресурсы для их миграции.In the project plan, define the method of handling all objects and allocate the appropriate resources for their migration.

    В среде Azure можно найти службы, которые заменяют функциональные возможности, реализованные в виде функций или хранимых процедур, в среде Netezza.You might find services in the Azure environment that replace the functionality implemented as functions or stored procedures in the Netezza environment. Как правило, более эффективно использовать встроенные возможности Azure вместо перекодирования функций Netezza.Usually, it's more efficient to use the built-in Azure capabilities instead of recoding the Netezza functions.

    Кроме того, сторонние поставщики предлагают средства и службы, которые могут автоматизировать перенос функций, хранимых процедур и последовательностей из Netezza.Also, third-party vendors offer tools and services that can automate the migration of functions, stored procedures, and sequences from Netezza. Примеры включают Qlik Sense (ранее Attunity) и Вхерескапе.Examples include Qlik (formerly Attunity) and WhereScape.

    Ниже приведены некоторые дополнительные сведения о миграции функций, хранимых процедур и последовательностей.Here's some additional information about migrating functions, stored procedures, and sequences:

    • Функции: Как и большинство продуктов баз данных, Netezza поддерживает системные функции и определяемые пользователем функции в реализации SQL.Functions: Like most database products, Netezza supports system functions and user-defined functions in a SQL implementation. При переносе общих системных функций на другую платформу баз данных, например Azure синапсе, они обычно доступны в новой среде и могут быть перенесены без изменений.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. Если в новой среде системные функции имеют немного другой синтаксис, то обычно можно автоматизировать необходимые изменения.If system functions have slightly different syntax in the new environment, you usually can automate the required changes.

      Может потребоваться Recode произвольные определяемые пользователем функции и системные функции, которые не имеют эквивалента в новой среде.You might need to recode arbitrary user-defined functions and system functions that have no equivalent in the new environment. Используйте языки, доступные в новой среде.Use the languages that are available in the new environment. Netezza определяемые пользователем функции кодируются с помощью Нзлуа или C++.Netezza user-defined functions are coded by using nzLua or C++. Azure синапсе использует популярный язык Transact-SQL для реализации определяемых пользователем функций.Azure Synapse uses the popular Transact-SQL language to implement user-defined functions.

    • Хранимые процедуры: В большинстве современных продуктов баз данных можно хранить процедуры в виде n.Stored procedures: In most modern database products, you can store procedures n the database. Хранимая процедура обычно содержит инструкции SQL и некоторую логику.A stored procedure typically contains SQL statements and some procedural logic. Он также может возвращать данные или состояние.It might also return data or a status.

      Netezza предоставляет язык НЗПЛСКЛ, основанный на PL/pgSQL, для хранимых процедур.Netezza provides the NZPLSQL language, based on PL/pgSQL, for stored procedures. Azure синапсе поддерживает хранимые процедуры с помощью T-SQL.Azure Synapse supports stored procedures by using T-SQL. При миграции хранимых процедур в Azure синапсе необходимо Recode их с помощью T-SQL.If you migrate stored procedures to Azure Synapse, you must recode them by using T-SQL.

    • Последовательности: В Netezza последовательность представляет собой объект именованной базы данных, созданный с помощью CREATE SEQUENCE инструкции.Sequences: In Netezza, a sequence is a named database object that's created via a CREATE SEQUENCE statement. Объекты могут предоставлять уникальное значение с помощью NEXT() метода.Objects can provide the unique value via the NEXT() method. Можно использовать значения для создания уникальных чисел в качестве значений суррогатных ключей для значений первичного ключа.You can use values to generate unique numbers as surrogate key values for primary key values.

      Azure синапсе не поддерживает CREATE SEQUENCE .Azure Synapse doesn't support CREATE SEQUENCE. В Azure синапсе последовательности обрабатываются с помощью столбцов идентификаторов или кода SQL для создания следующего порядкового номера в ряде.In Azure Synapse, sequences are handled by using identity columns or SQL code to create the next sequence number in a series.

    Извлечение метаданных и данныхMetadata and data extraction

    При планировании извлечения метаданных и данных из среды Netezza учитывайте следующие сведения:Consider the following information when you plan how to extract metadata and data from the Netezza environment:

    • Создание языка описания данных (DDL): Можно изменить существующие Netezza CREATE TABLE и CREATE VIEW скрипты, чтобы создать эквивалентные определения с измененными типами данных, как описано выше.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. Эта задача обычно включает удаление или изменение любых предложений, относящихся к Netezza, например ORGANIZE ON .This task usually involves removing or modifying any clauses that are specific to Netezza, like ORGANIZE ON.

      В Netezza сведения, указывающие текущую таблицу и определения представлений, хранятся в системных таблицах каталога.In Netezza, the information that specifies the current table and view definitions is maintained in system catalog tables. Таблицы системных каталогов являются лучшим источником информации, так как таблицы, вероятнее всего, являются актуальными и готовыми к работе.System catalog tables are the best source of the information because the tables likely are up to date and complete. Возможно, документация, обслуживаемая пользователем, не синхронизирована с текущими определениями таблиц.User-maintained documentation might not be in sync with current table definitions.

    Доступ к таблицам системных каталогов в Netezza можно получить с помощью служебной программы, например nz_ddl_table.You can access system catalog tables in Netezza by using a utility like nz_ddl_table. Таблицы можно использовать для создания CREATE TABLE инструкций DDL, которые затем можно изменить для эквивалентных таблиц в Azure синапсе.You can use the tables to generate CREATE TABLE DDL statements, which you can then edit for the equivalent tables in Azure Synapse. Средства миграции и извлечения, используемые сторонними производителями, также используют сведения о каталоге для получения одинаковых результатов.Third-party migration and ETL tools also use the catalog information to achieve the same results.

    • Извлечение данных: Вы можете извлечь необработанные данные для переноса из существующей таблицы Netezza в плоский файл с разделителями, используя стандартные служебные программы Netezza, такие как нзскл и нзунлоад, а также с помощью внешних таблиц.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. Сжимать файлы с помощью gzip, а затем использовать AzCopy или службу транспорта данных Azure, например Azure Data Box, для отправки файлов в хранилище BLOB-объектов 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.

      Во время миграции важно как можно более эффективно извлекать данные.During a migration exercise, it's important to extract data as efficiently as possible. Рекомендуемым подходом для Netezza является использование внешних таблиц, что также является самым быстрым методом.The recommended approach for Netezza is to use external tables, which is also the fastest method. Можно выполнить несколько извлечений в параллельном режиме, чтобы увеличить пропускную способность для извлечения данных.You can complete multiple extracts in parallel to maximize the throughput for data extraction.

    Ниже приведен простой пример внешней таблицы.Here's a simple example of an external table extract:

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

    При наличии достаточной пропускной способности сети вы можете извлекать данные непосредственно из локальной системы Netezza в таблицы синапсе Azure или в хранилище данных Azure с помощью процессов фабрики данных, переноса данных или продуктов, поддерживающих распаковку, от сторонних производителей.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.

    Рекомендуемые форматы данных для извлеченных данных — это текстовые файлы с разделителями- запятыми, файлы оптимизированных столбцов строк или файлы Parquet.Recommended data formats for extracted data are delimited text files (also called comma-separated values), optimized row columnar files, or Parquet files.

    Более подробные сведения о процессе переноса данных и ETL из среды Netezza см. в документации Netezza о миграции данных ETL и загрузке.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.

    Рекомендации по настройке производительностиPerformance-tuning recommendations

    При переходе на Azure синапсе из среды Netezza многие из используемых вами концепций настройки производительности будут знакомы.When you move to Azure Synapse from a Netezza environment, many of the performance-tuning concepts you use will be familiar.

    Например, эти понятия одинаковы для обеих сред:For example, these concepts are the same for both environments:

    • Распределение данных сомещает данные, которые должны быть присоединены к одному и тому же узлу обработки.Data distribution colocates data to be joined onto the same processing node.
    • Использование наименьшего типа данных для конкретного столбца экономит дисковое пространство и ускоряет обработку запросов.Using the smallest data type for a specific column saves storage space and accelerates query processing.
    • Обеспечение идентичности типов данных соединяемых столбцов позволяет оптимизировать обработку соединения, уменьшая необходимость преобразования данных для сопоставления.Ensuring that data types of columns to be joined are identical optimizes join processing by reducing the need to transform data for matching.
    • Обеспечение актуальности статистики помогает оптимизатору создать наилучший план выполнения.Ensuring that statistics are up to date helps the optimizer produce the best execution plan.

    Существуют некоторые различия между платформами, когда речь идет о оптимизации.There are some differences between platforms when it comes to optimization. В следующем списке рекомендаций по настройке производительности будут выделены различия в реализации более низкого уровня между Netezza и Azure синапсе, а также альтернативы для миграции.In the following list of performance-tuning recommendations, lower-level implementation differences between Netezza and Azure Synapse, and alternatives for your migration, are highlighted:

    • Варианты распространения данных: Как в Netezza, так и в Azure синапсе можно использовать CREATE TABLE инструкцию для указания определения распространения.Data distribution options: In both Netezza and Azure Synapse, you can use a CREATE TABLE statement to specify a distribution definition. Используйте DISTRIBUTE ON для Netezza и DISTRIBUTION = для Azure синапсе.Use DISTRIBUTE ON for Netezza and DISTRIBUTION = for Azure Synapse.

      Azure синапсе предоставляет дополнительный способ для достижения локальных соединений для небольших таблиц и больших соединений таблиц, часто называемых таблицей измерения или соединением таблицы фактов в модели схемы типа «звезда».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. Подход состоит в том, чтобы реплицировать таблицу измерения меньшего размера на все узлы, тем самым гарантируя, что любое значение ключа объединения для большей таблицы будет иметь совпадающую строку измерения, доступную локально.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. Накладные расходы на репликацию таблицы измерения относительно низкие, если таблицы не велики.The overhead of replicating the dimension table is relatively low if the tables are not large. В этом случае предпочтительнее использовать подход хэш-распределения, описанный выше.In this case, using the hash distribution approach described earlier is preferable.

    • Индексирование данных: Azure синапсе предоставляет различные параметры индексирования, определяемые пользователем, но параметры различаются в работе и использовании по сравнению с управляемыми системой картами зон в 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. Дополнительные сведения о параметрах индексирования в Azure синапсе см. в статье индексные таблицы в пуле SQL Azure синапсе.To learn about the indexing options in Azure Synapse, see Index tables in an Azure Synapse SQL pool.

      Существующие схемы зон, управляемые системой в исходной среде Netezza, могут предоставить полезные сведения об использовании данных и указать столбцы кандидатов для индексирования в среде 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.

    • Секционирование данных: В хранилище данных предприятия таблицы фактов могут содержать много миллиардов строк данных.Data partitioning: In an enterprise data warehouse, fact tables might contain many billions of rows of data. Секционирование — это способ оптимизации обслуживания и выполнения запросов в этих таблицах.Partitioning is a way to optimize maintenance and querying in these tables. Разделение таблиц на отдельные части сокращает объем обрабатываемых данных за один раз.Splitting the tables into separate parts reduces the amount of data processed at one time. Секционирование для таблицы определяется в CREATE TABLE инструкции.Partitioning for a table is defined in the CREATE TABLE statement.

      Для секционирования можно использовать только одно поле на таблицу.Only one field per table can be used for partitioning. Поле, используемое для секционирования, часто является полем даты, так как многие запросы фильтруются по датам или по диапазонам дат.The field that's used for partitioning frequently is a date field because many queries are filtered by date or by a date range. Можно изменить секционирование таблицы после начальной загрузки.You can change the partitioning of a table after initial load. Чтобы изменить секционирование таблицы, повторно создайте таблицу с новым распределением, использующим CREATE TABLE AS SELECT инструкцию.To change a table's partitioning, re-create the table with a new distribution that uses the CREATE TABLE AS SELECT statement. Подробное описание секционирования в Azure синапсе см. в статье секционирование таблиц в пуле SQL Azure синапсе.For a detailed description of partitioning in Azure Synapse, see Partition tables in an Azure Synapse SQL pool.

    • Polybase для загрузки данных: Polybase — наиболее эффективный метод для загрузки больших объемов данных в хранилище.PolyBase for data loading: PolyBase is the most efficient method to use to load large amounts of data into a warehouse. Polybase можно использовать для загрузки данных в параллельных потоках.You can use PolyBase to load data in parallel streams.

    • Классы ресурсов для управления рабочей нагрузкой: Azure синапсе использует классы ресурсов для управления рабочими нагрузками.Resource classes for workload management: Azure Synapse uses resource classes to manage workloads. Как правило, крупные классы ресурсов обеспечивают лучшую производительность отдельных запросов.In general, large resource classes provide better individual query performance. Классы ресурсов меньшего размера обеспечивают более высокие уровни параллелизма.Smaller resource classes give you higher levels of concurrency. Динамические административные представления можно использовать для отслеживания использования, чтобы обеспечить эффективное использование соответствующих ресурсов.You can use dynamic management views to monitor utilization to help ensure that the appropriate resources are used efficiently.

    Дальнейшие действияNext steps

    Дополнительные сведения о реализации Netezza миграции см. в подучетная запись Майкрософт представителя по локальным предложениям миграции.For more information about implementing a Netezza migration, talk with your Microsoft account representative about on-premises migration offers.