Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:✅ хранилище в Microsoft Fabric
Хранилище в Microsoft Fabric предоставляет встроенные инструменты для приема данных. Используйте эти инструменты для масштабного приема данных в хранилища, без необходимости писать код или с возможностью его написания.
Выбор средства приема данных
Выберите параметр приема данных на основе следующих критериев:
- Используйте инструкцию COPY (Transact-SQL) для операций приема данных с расширенным кодом. Она обеспечивает максимальную пропускную способность приема данных. Используйте его, когда необходимо добавить интеграцию данных в рамках логики на Transact-SQL.
- Чтобы приступить, см. раздел «Прием данных с помощью инструкции COPY».
- Warehouse также поддерживает традиционный оператор
BULK INSERTдля обеспечения совместимости. В Fabric Data Warehouse эта инструкция сопоставляется с поведениемCOPY INTOс классическими параметрами загрузки. - Инструкция
COPYв Хранилище поддерживает источники данных из учетных записей хранения Azure и папок OneLake lakehouse.
- Используйте BCP API (предварительная версия) для прямой загрузки на стороне клиента, если данные находятся на уровне вашего приложения и у вас нет возможности сначала разместить файлы в промежуточном хранилище.
- Сведения о начале работы см. в разделе приема данных с помощью API BCP (предварительная версия).
- API BCP поддерживает bcp.exe скрипты и API приложений, такие как C#
SqlBulkCopyи JavaSQLServerBulkCopy. - Для файлового приема данных с максимальной пропускной способностью предпочтительно использовать
COPY INTO, если возможно промежуточное размещение.
- Используйте конвейеры для рабочих процессов интеграции данных без использования кода или с минимальным его использованием, которые многократно выполняются по расписанию или включают большие объемы данных.
- Чтобы приступить к работе, см. сведения о приеме данных в хранилище с помощью конвейеров.
- С помощью пайплайнов можно координировать надежные рабочие процессы в рамках полного процесса извлечения, преобразования и загрузки (ETL). Этот интерфейс включает действия для подготовки конечной среды, выполнения пользовательских инструкций Transact-SQL, выполнения подстановок или копирования данных из источника в место назначения.
- Используйте потоки данных для процесса без кода, который позволяет выполнять пользовательские преобразования исходных данных перед приемом.
- Чтобы начать, см. загрузку данных с помощью потока данных.
- Эти преобразования включают (но не ограничиваются) изменением типов данных, добавлением или удалением столбцов или использованием функций для создания вычисляемых столбцов.
- Используйте взаимодействие с T-SQL для насыщенных функциями создания новых таблиц или обновления существующих с исходными данными в пределах одного рабочего пространства или во внешнем хранилище.
- Чтобы приступить к работе, см. сведения о приеме данных в хранилище с помощью Transact-SQL.
- Используйте такие функции Transact-SQL, как
INSERT...SELECT,SELECT INTOилиCREATE TABLE AS SELECT (CTAS)для чтения данных из таблиц, ссылающихся на другие хранилища, озерные хранилища или зеркальные базы данных в этой же рабочей области. Эти функции также можно использовать для чтения данных из функцииOPENROWSET, которая ссылается на файлы во внешних учетных записях хранения Azure. - Вы также можете выполнять межбазовые запросы через различные хранилища данных в рабочей области Fabric.
Поддерживаемые форматы и источники данных
Прием данных для хранилища в Microsoft Fabric поддерживает множество форматов данных и источников. Каждый вариант, описанный в этой статье, содержит собственный список поддерживаемых типов соединителей данных и форматов данных.
Для приема T-SQL табличные источники данных должны находиться в одной рабочей области Microsoft Fabric, а источники данных файлов должны находиться в хранилище Azure Data Lake или Azure Blob Storage. Данные можно запрашивать с помощью трехкомпонентного именования или OPENROWSET функции для исходных данных. Источники данных таблицы могут ссылаться на наборы данных Delta Lake, а OPENROWSET могут ссылаться на файлы Parquet, CSV или JSONL в Azure Data Lake или Azure Blob Storage.
Например, предположим, что рабочая область имеет два хранилища, именованные Inventory и Sales. Запрос, подобный следующему, создает новую таблицу в Inventory хранилище с содержимым таблицы в Inventory хранилище, присоединенной к таблице в Sales хранилище, и с внешними файлами, содержащими сведения о клиентах.
CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT
s.SalesOrders,
i.ProductName,
c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';
Note
Чтение данных с помощью OPENROWSET может быть медленнее, чем запрос данных из таблицы. Если вы планируете получить доступ к тем же внешним данным неоднократно, рассмотрите возможность приема данных в выделенную таблицу для повышения производительности и эффективности запросов.
Инструкция COPY (Transact-SQL) в настоящее время поддерживает форматы ФАЙЛОВ CSV, JSONL и PARQUET. Для источников данных в настоящее время поддерживаются Azure Data Lake Storage (ADLS) 2-го поколения и Хранилище BLOB-объектов Azure.
Для сценариев прямого приёма данных на стороне клиента BCP API (предварительная версия) поддерживает такие средства и API, как bcp.exe, C# SqlBulkCopy и Java SQLServerBulkCopy, по SQL-подключениям без предварительного создания промежуточных файлов.
Конвейеры и потоки данных поддерживают широкий спектр источников данных и форматов данных. Дополнительные сведения см. в разделе "Конвейеры и потоки данных".
Лучшие практики
Команда COPY в хранилище в Microsoft Fabric предоставляет простой, гибкий и быстрый интерфейс для приема данных с высокой пропускной способностью для рабочих нагрузок SQL. В текущей версии она поддерживает загрузку данных только из внешних учетных записей хранения.
Вы также можете использовать язык T-SQL для создания новой таблицы, а затем вставки в нее, а затем обновления и удаления строк данных. Данные из любой базы данных можно вставить в рабочую область Microsoft Fabric с помощью запросов между базами данных. Если вы хотите передать данные из Lakehouse в хранилище, это можно сделать с помощью кросс-базового запроса. Рассмотрим пример.
INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
- Избегайте приема данных с помощью одноэлементных
INSERTинструкций, так как этот подход приводит к снижению производительности запросов и обновлений. При последовательном использовании одноэлементныхINSERTинструкций для приема данных создайте новую таблицу с помощью шаблоновCREATE TABLE AS SELECT (CTAS)илиINSERT...SELECT, удалите исходную таблицу и снова создайте таблицу, используя ранее созданную таблицу с помощьюCREATE TABLE AS SELECT (CTAS).- Удаление существующей таблицы влияет на семантику модели, включая любые пользовательские меры или настройки, которые вы могли сделать в семантической модели.
- При работе с внешними данными в файлах убедитесь, что файлы размером не менее 4 МБ.
- Для больших сжатых CSV-файлов рекомендуется разделить файл на несколько файлов.
- Azure Data Lake Storage (ADLS) 2-го поколения обеспечивает более высокую производительность, чем Хранилище BLOB-объектов Azure (устаревшая версия). По возможности рекомендуется использовать учетную запись ADLS 2-го поколения.
- Для конвейеров, которые выполняются часто, рекомендуется изолировать учетную запись хранения Azure от других служб, которые могут получить доступ к тем же файлам одновременно.
- Явные транзакции позволяют группировать несколько изменений данных, чтобы они отображались только при чтении одной или нескольких таблиц, когда транзакция полностью зафиксирована. Вы также можете откатить транзакцию при сбое любого из изменений.
- Если
SELECTнаходится в пределах транзакции и перед ним выполнялись вставки данных, автоматически создаваемая статистика может быть неточной после отката. Неточная статистика может привести к неоптимизированным планам запросов и времени выполнения. Если вы откатываете транзакцию сSELECTпосле большогоINSERT, обновите статистику для столбцов, упомянутых в вашемSELECT.
Note
Независимо от того, как вы вводите данные в хранилища, задача ввода данных оптимизирует создаваемые файлы parquet, используя оптимизацию записи V-Order. V-Order оптимизирует файлы Parquet для обеспечения молниеносного чтения в вычислительных движках Microsoft Fabric, таких как Power BI, SQL, Spark и другие. Запросы к хранилищу в целом выигрывают от более быстрого чтения благодаря этой оптимизации, при этом файлы Parquet по-прежнему на 100% соответствуют спецификации с открытым исходным кодом. Не отключать V-Order, так как это может повлиять на производительность чтения. Дополнительные сведения о V-Order см. в разделе "Общие сведения о V-Order для хранилища" и управлении ими.
Часто задаваемые вопросы о приеме данных для Fabric Data Warehouse
Что такое руководство по разделиванию файлов для команды COPY, загружающей сжатые CSV-файлы?
Рекомендуется разделить большие CSV-файлы, особенно если количество файлов невелико, но при этом их размер оставался не менее 4 МБ для улучшения производительности.
Что такое руководство по разделиванию файлов для команды COPY, загружающей файлы Parquet?
Рекомендуется разделить большие файлы Parquet, особенно если количество файлов невелико.
Есть ли ограничения на число или размер файлов?
Нет ограничений на количество или размер файлов. Однако для повышения производительности используйте не менее 4 МБ файлов.
Какой метод проверки подлинности используется командой COPY, если не указать учетные данные?
По умолчанию COPY INTO использует Microsoft Entra ID пользователя, выполняющего операцию.