Таблицы в Fabric Data Warehouse

Применимо к:✅ Хранилище в Microsoft Fabric

В этой статье описаны основные понятия разработки таблиц в Microsoft Fabric.

В таблицах данные логически организованы в формате строк и столбцов. Каждая строка представляет собой уникальную запись, а каждый столбец — поле записи.

Определение категории таблицы

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

  • Таблицы фактов содержат количественные данные, которые обычно создаются в транзакционной системе, а затем загружаются в хранилище данных. Например, розничное предприятие ежедневно создает транзакции продаж, а затем загружает данные в таблицу фактов хранилища данных для анализа.

  • Таблицы измерений содержат данные атрибутов, которые могут измениться, хотя обычно это происходит редко. Например, имя и адрес клиента хранятся в таблице измерений и обновляются только при изменении профиля клиента. Чтобы минимизировать размер большой таблицы фактов, необязательно включать имя и адрес клиента в каждой строке. Вместо этого в таблице фактов и таблице измерений может совместно использоваться идентификатор клиента. Запрос может объединить две таблицы, чтобы связать профиль и транзакции клиента.

  • Таблицы интеграции служат для интеграции или промежуточного размещения данных. Например, вы можете загружать данные в промежуточную таблицу, выполнять преобразования данных в этой таблице, а затем вставлять в рабочую таблицу.

Таблица хранит данные в OneLake как часть хранилища. Таблица и данные сохраняются независимо от того, открыт ли сеанс.

Таблицы в хранилище

Чтобы отобразить организацию таблиц, можно использовать factdimint или в качестве префиксов в именах таблиц. В следующей таблице показаны некоторые имена схем и таблиц для примера хранилища данных WideWorldImportersDW .

Имя исходной таблицы WideWorldImportersDW Тип таблицы имя таблицы Хранилища данных
Город Измерение wwi.DimCity
Порядок Факт wwi.FactOrder
  • Имена таблиц не могут содержать /, \ или заканчиваться на ..

Создание таблицы

Для хранилища можно создать таблицу в виде новой пустой таблицы. Вы также можете создать и заполнить таблицу результатами инструкции Select. Ниже приведены команды T-SQL для создания таблицы.

Инструкция T-SQL Описание
СОЗДАТЬ ТАБЛИЦУ Создает пустую таблицу, определив все столбцы и параметры таблицы.
СОЗДАВАТЬ ТАБЛИЦУ КАК SELECT Заполняет новую таблицу результатами запроса SELECT. Столбцы и типы данных таблицы основаны на результатах инструкции Select. Чтобы импортировать данные, эта инструкция может выбрать данные из внешней таблицы.

В этом примере создается таблица с двумя столбцами:

CREATE TABLE MyTable (col1 int, col2 int );

Имена схем

Хранилище поддерживает создание пользовательских схем. Как и в SQL Server, схемы являются хорошим способом группировки объектов, которые используются аналогичным образом. В следующем коде создается пользовательская схема с именем wwi.

  • Имена схем чувствительны к регистру.
  • Имена схем не могут содержать / или \ или заканчиваться на ..
CREATE SCHEMA wwi;

Типы данных

Microsoft Fabric поддерживает наиболее часто используемые типы данных T-SQL.

Сортировка

Хранилища Fabric настраиваются на основе параметра сортировки рабочей области, который по умолчанию является параметром сортировки, чувствительным к регистру (CS) Latin1_General_100_BIN2_UTF8. При создании нового хранилища будет использоваться сортировка рабочего пространства. Для получения дополнительной информации см. Сопоставление Data Warehouse.

Поддерживаемые параметры сортировки хранилища:

  • Latin1_General_100_BIN2_UTF8 (по умолчанию)
  • Latin1_General_100_CI_AS_KS_WS_SC_UTF8

Вы можете создать хранилище с параметрами сортировки, не используемыми по умолчанию, с помощью REST API. Дополнительные сведения см. в статье Практическое руководство: Создание хранилища с нечувствительной к регистру (CI) сортировкой.

После установки параметров сортировки во время создания базы данных все последующие объекты (таблицы, столбцы и т. д.) наследуют этот параметр сортировки по умолчанию. После создания хранилища невозможно изменить параметр сортировки.

Статистика

Оптимизатор запросов использует статистику уровня столбца при создании плана выполнения запроса. Чтобы повысить производительность запросов, важно получить статистику по отдельным столбцам, особенно столбцам, используемым в объединениях запросов. Хранилище поддерживает автоматическое создание статистики.

Обновление статистики не происходит автоматически. Обновите статистику после добавления или изменения значительного числа строк. Например, есть смысл обновить статистику после загрузки. Дополнительную информацию см. в разделе Статистика в Fabric Data Warehouse.

Первичный ключ, внешний ключ и уникальный ключ

Для хранилища PRIMARY KEY и UNIQUE ограничения поддерживаются только в том случае, если используются и NONCLUSTERED и NOT ENFORCED.

FOREIGN KEY поддерживается только в том случае, если NOT ENFORCED используется.

#temp таблицы

Временные таблицы с областью сеанса (#temp) можно создать в Fabric Data Warehouse.

Эти таблицы существуют только в сеансе, в котором они создаются и продолжаются в течение этого сеанса. Они не видны другим пользователям или сеансам и автоматически удаляются из системы после завершения сеанса или удаления таблицы #temp. Эти таблицы доступны всем пользователям, не требуя разрешения на уровне элементов.

Два типа таблиц #temp можно создавать на основе конкретных вариантов использования: не распределенных и распределенных.

  • Нераспределенная таблица #temp (mdf-backed) — это тип по умолчанию. Синтаксис создания и использования нераспространяемых таблиц #temp в Fabric Data Warehouse аналогичен пользовательским таблицам, но необходимо префиксировать имя временной таблицы с #.

     CREATE TABLE #table_name (
       Col1 data_type1,
       Col2 data_type2
     );
    
  • Распространенные временные таблицы на основе Parquet можно создать с помощью ключевого слова DISTRIBUTION=ROUND_ROBIN.

    CREATE TABLE #table_name (
    Col1 data_type1,
    Col2 data_type2
    ) WITH (DISTRIBUTION=ROUND_ROBIN);
    

В предыдущем скрипте data_type1 и data_type2 являются заполнителями поддерживаемых типов Data в Fabric Data Warehouse.

Рекомендуется использовать распределенные #temp таблицы, так как они соответствуют обычным пользовательским таблицам; они имеют неограниченное хранилище, поддержку типов данных и операции T-SQL.

Другие заметки о временных таблицах в Fabric Data Warehouse:

  • Синтаксис для обработки и определения данных идентичен пользовательским таблицам в Fabric Data Warehouse с префиксом # добавлен в имя таблицы.
  • Временные таблицы не зависят от подсказок запросов на поездку во времени и всегда возвращают последние данные из таблицы.
  • Вы можете изменить распределенные временные таблицы, ALTER TABLE, но не таблицы, основанные на MDF.

Согласование исходных данных с хранилищем данных

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

Если данные приходят из нескольких хранилищ данных, можно перенести данные в хранилище и сохранить их в таблице интеграции. После ввода данных в таблицу интеграции можно использовать возможности хранилища для реализации операций преобразования. После подготовки данных их можно вставить в рабочие таблицы.

Ограничения

Склад поддерживает многие функции таблиц, предлагаемых другими базами данных, но не все функции.

  • Глобальные временные таблицы в настоящее время не поддерживаются.

В следующем списке показаны некоторые функции таблицы, которые сейчас не поддерживаются.

  • 1024 максимальных столбцов на таблицу

  • Вычисляемые столбцы

  • Индексированные представления

  • Секционированные таблицы

  • Последовательность

  • Разреженные столбцы

  • Синонимы

  • Триггеры

  • Уникальные индексы

  • Определяемые пользователем типы

  • Внешние таблицы

  • Метаданные объекта хранилища кэшируются Fabric Data Warehouse для быстрого доступа к объектам и их определениям. Для очень крупных хранилищ с более чем 750 000 объектами (например, таблицами, представлениями, хранимыми процедурами и функциями), метаданные больше не кэшируются системой. Вместо этого операции схемы запрашивают хранилище метаданных напрямую. Это обеспечивает стабильность системы и предотвращает нехватку кэша в очень больших базах данных. Однако операции обновления схемы могут занять больше времени по сравнению с меньшими хранилищами, в которых включен кэширование метаданных.

Внимание

Существуют ограничения при добавлении ограничений таблицы или столбцов при использовании системы управления исходными кодами с хранилищем.