Прием данных в хранилище

Область применения: хранилище в Microsoft Fabric

Хранилище в Microsoft Fabric предлагает встроенные средства приема данных, позволяющие пользователям выполнять прием данных в хранилища в большом масштабе с помощью возможностей, свободных от кода или кода.

Параметры приема данных

Вы можете получать данные в хранилище с помощью одного из следующих вариантов:

  • COPY (Transact-SQL): инструкция COPY предлагает гибкий прием данных с высокой пропускной способностью из внешней учетной записи хранения Azure. Инструкцию COPY можно использовать в рамках существующей логики ETL/ELT в коде Transact-SQL.
  • Конвейеры данных: конвейеры предлагают бесплатный или низкокодовый интерфейс для приема данных. С помощью конвейеров можно управлять надежными рабочими процессами для полного процесса извлечения, преобразования, загрузки (ETL), включающего действия для подготовки конечной среды, выполнения пользовательских инструкций Transact-SQL, выполнения подстановок или копирования данных из источника в место назначения.
  • Потоки данных: альтернатива конвейерам, потокам данных позволяет легко подготавливать данные, очищать и преобразовывать с помощью интерфейса без кода.
  • Прием данных между хранилищами: прием данных из источников рабочей области также возможен. Этот сценарий может потребоваться, если необходимо создать новую таблицу с подмножеством другой таблицы или в результате объединения разных таблиц в складе и в lakehouse. Для приема между хранилищами в дополнение к параметрам, упоминание, функции Transact-SQL, такие как INSERT... SELECT, SELECT INTO или CREATE TABLE AS SELECT (CTAS) работают между хранилищем в одной рабочей области.

Определите, какой инструмент приема данных следует использовать

Чтобы решить, какой вариант приема данных используется, можно использовать следующие критерии:

  • Используйте инструкцию COPY (Transact-SQL) для операций приема данных с расширенным кодом, для максимальной пропускной способности приема данных или при необходимости добавления приема данных в рамках логики Transact-SQL. Синтаксис см. в разделе COPY INTO (Transact-SQL).
  • Используйте конвейеры данных для рабочих процессов приема данных без кода или низкого кода, надежных рабочих процессов приема данных, которые выполняются многократно, по расписанию или включающих большие объемы данных. Дополнительные сведения см. в разделе приема данных с помощью конвейеров данных.
  • Используйте потоки данных для интерфейса без кода, позволяющего пользовательским преобразованиям создавать исходные данные перед приемом. Эти преобразования включают (но не ограничиваются) изменением типов данных, добавлением или удалением столбцов или использованием функций для создания вычисляемых столбцов. Дополнительные сведения см. в разделе "Потоки данных".
  • Для создания таблиц с исходными данными в одной рабочей области используйте прием между хранилищами для создания таблиц с исходными данными. Дополнительные сведения см. в разделе "Прием данных" с помощью Transact-SQL и записи запроса между базами данных.

Примечание.

Инструкция COPY в Хранилище поддерживает только источники данных в учетных записях хранения Azure, используя проверку подлинности для подписанного URL-адреса (SAS), служба хранилища ключа учетной записи (SAK) или учетных записей с открытым доступом. Сведения о других ограничениях см. в разделе COPY (Transact-SQL).

Поддерживаемые форматы и источники данных

Прием данных для хранилища в Microsoft Fabric предоставляет большое количество форматов данных и источников, которые можно использовать. Каждый из описанных параметров содержит собственный список поддерживаемых типов соединителей данных и форматов данных.

Для приема данных между хранилищами источники данных должны находиться в одной рабочей области Microsoft Fabric. Запросы можно выполнять с помощью трехкомпонентного именования исходных данных.

Например, предположим, что в рабочей области есть два хранилища с именем "Инвентаризация" и "Продажи". Запрос, например следующий, создает новую таблицу в хранилище инвентаризации с содержимым таблицы в складе инвентаризации, присоединенной к таблице в хранилище продаж:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT s.SalesOrders, i.ProductName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
WHERE s.ProductID = i.ProductID
    AND s.Region = 'West region'

Инструкция COPY (Transact-SQL) в настоящее время поддерживает форматы ФАЙЛОВ PARQUET и CSV. Для источников данных в настоящее время поддерживаются azure Data Lake служба хранилища (ADLS) 2-го поколения и Хранилище BLOB-объектов Azure.

Конвейеры данных и потоки данных поддерживают широкий спектр источников данных и форматов данных. Дополнительные сведения см. в разделе "Конвейеры данных" и "Потоки данных".

Рекомендации

Функция команды COPY в хранилище в Microsoft Fabric использует простой, гибкий и быстрый интерфейс для приема данных с высокой пропускной способностью для рабочих нагрузок SQL. В текущей версии мы поддерживаем загрузку данных только из внешних учетных записей хранения.

Вы также можете использовать TSQL для создания новой таблицы, а затем вставки в нее, а затем обновления и удаления строк данных. Данные можно вставлять из любой базы данных в рабочей области Microsoft Fabric с помощью запросов между базами данных. Если вы хотите принять данные из Lakehouse в хранилище, это можно сделать с помощью запроса между базами данных. Например:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Избегайте приема данных с помощью инструкций singleton INSERT , так как это приводит к снижению производительности запросов и обновлений. Если для приема данных последовательно использовались однотонные инструкции INSERT, рекомендуется создать новую таблицу с помощью CREATE TABLE AS SELECT (CTAS) или INSERT... Шаблоны SELECT, удаление исходной таблицы и повторное создание таблицы из таблицы, созданной с помощью CREATE TABLE AS SELECT (CTAS).
    • Удаление существующей таблицы влияет на семантику модели, включая любые пользовательские меры или настройки, которые вы могли сделать в семантической модели.
  • При работе с внешними данными в файлах рекомендуется по крайней мере 4 МБ размера.
  • Для больших сжатых CSV-файлов рекомендуется разделить файл на несколько файлов.
  • Azure Data Lake служба хранилища (ADLS) 2-го поколения обеспечивает более высокую производительность, чем Хранилище BLOB-объектов Azure (устаревшая версия). По возможности рекомендуется использовать учетную запись ADLS 2-го поколения.
  • Для конвейеров, которые выполняются часто, рекомендуется изолировать учетную запись хранения Azure от других служб, которые могут получить доступ к тем же файлам одновременно.
  • Явные транзакции позволяют группировать несколько изменений данных, чтобы они отображались только при чтении одной или нескольких таблиц, когда транзакция полностью зафиксирована. Вы также можете откатить транзакцию при сбое любого из изменений.
  • Если функция SELECT находится в транзакции и предшествует вставкам данных, автоматически созданная статистика может быть неточной после отката. Неточная статистика может привести к неоптимизированным планам запросов и времени выполнения. Если вы откатите транзакцию с помощью SELECTs после большой вставки, обновите статистику столбцов, упоминание в списке SELECT.

Примечание.

Независимо от способа приема данных в хранилищах файлы parquet, созданные задачей приема данных, будут оптимизированы с помощью оптимизации записи V-Order. V-Order оптимизирует файлы parquet, чтобы включить молниеносные операции чтения в вычислительных модулях Microsoft Fabric, таких как Power BI, SQL, Spark и другие. Запросы хранилища в целом получают более быстрое время чтения для запросов с этой оптимизацией, обеспечивая соответствие файлов parquet 100% спецификации с открытым исходным кодом. В отличие от Инжиниринг данных Fabric, V-Order — это глобальный параметр в хранилище данных Synapse, который не может быть отключен.