Поделиться через


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

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

В этом руководстве объясняется, как эффективно создавать суррогатные ключи и управлять ими с помощью IDENTITY столбцов в хранилище данных Fabric.

Это важно

Эта функция доступна в предварительной версии.

Предпосылки

  • Доступ к элементу хранилища в рабочей области с разрешениями участника или более высокого уровня.
  • Выберите средство запроса. В этом руководстве представлен редактор sql-запросов на портале Microsoft Fabric, но вы можете использовать любое средство запроса T-SQL.
  • Базовое понимание T-SQL.

Что такое столбец IDENTITY?

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

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

Чтобы определить IDENTITY столбец, укажите ключевое слово IDENTITY в определении столбца синтаксиса CREATE TABLE T-SQL:

CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
    [column_name] BIGINT IDENTITY,
    [ ,... n ],
    -- Other columns here
);

Замечание

В хранилище данных Fabric bigint является единственным поддерживаемым типом данных для IDENTITY столбцов. Кроме того, свойства seed и increment в T-SQL IDENTITY не поддерживаются. Дополнительные сведения см. в столбцах IDENTITY и IDENTITY (Transact-SQL). Дополнительные сведения о создании таблиц см. в статье "Создание таблиц в хранилище в Microsoft Fabric".

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

В этом руководстве мы создадим более простую версию таблицы из открытого Tripнабора данных такси Нью-Йорка и добавим в него новый TripIDIDENTITY столбец. Каждый раз при вставке новой строки для TripID назначается новое уникальное значение в таблице.

  1. Определите таблицу со столбцом IDENTITY :

     CREATE TABLE dbo.Trip
     (
         TripID BIGINT IDENTITY,
         DateID int,
         MedallionID int,
         HackneyLicenseID int,
         PickupTimeID int,
         DropoffTimeID int
     );
    
  2. Далее мы используем COPY INTO для приема некоторых данных в эту таблицу. При использовании COPY INTO со IDENTITY столбцами необходимо указать список столбцов, чтобы сопоставить их с столбцами в исходных данных.

    COPY INTO Trip (DateID 1, MedallionID 2, HackneyLicenseID 3, PickupTimeID 4, DropoffTimeID 5)
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = '|',
        COMPRESSION = 'GZIP'
    );
    
  3. Мы можем просмотреть данные и значения, назначенные столбцу IDENTITY , с помощью простого запроса:

    SELECT TOP 10 * 
    FROM Trip;
    

    Выходные данные включают автоматически созданное значение для столбца TripID для каждой строки.

    Снимок экрана: результаты запроса, показывающие таблицу с первыми 10 строками набора данных о поездке на такси.

    Это важно

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

  4. Вы также можете использовать INSERT INTO для загрузки новых строк в вашей таблице.

    INSERT INTO dbo.Trip
    VALUES (20251104, 3524, 28804, 51931, 52252);
    
  5. Список столбцов можно указать с помощью INSERT INTO, но это не обязательно. При предоставлении списка столбцов укажите имя всех столбцов, для которые вы предоставляете входные данные, за исключением столбца IDENTITY :

    INSERT INTO dbo.Trip (DateID, MedallionID, HackneyLicenseID, PickupTimeID, DropoffTimeID)
    VALUES (20251104, 8410, 24939, 74609, 49583);
    
  6. Мы можем просмотреть строки, вставляемые с помощью простого запроса:

    SELECT *
    FROM dbo.Trip
    WHERE DateID = 20251104;
    

Просмотрите значения, назначенные новым строкам:

Таблица с двумя строками и шестью столбцами с данными о поездке на такси.