Udostępnij za pośrednictwem


Samouczek: ładowanie danych zewnętrznych przy użyciu identyfikatora Entra firmy Microsoft

W tym artykule wyjaśniono, jak tworzyć tabele zewnętrzne przy użyciu przekazywania identyfikatora entra firmy Microsoft.

Wymagania wstępne

Do ukończenia tego samouczka są wymagane następujące zasoby:

  • Obszar roboczy usługi Azure Synapse Analytics i dedykowana pula SQL

Nadaj kontu Microsoft Entra ID dostęp do konta magazynu

W tym przykładzie użyto konta microsoft Entra ID (lub grupy) do uwierzytelniania w danych źródłowych.

Aby umożliwić dostęp do danych na kontach usługi Azure Data Lake Storage (ADLS) Gen2, musisz nadać kontu (lub grupie) identyfikatora firmy Microsoft dostęp do konta źródłowego. Aby udzielić odpowiednich uprawnień, wykonaj następujące kroki:

  1. W witrynie Azure Portal znajdź swoje konto magazynu.
  2. Wybierz pozycję Magazyn danych —> Kontenery i przejdź do folderu, w którym znajduje się źródło danych, do których tabela zewnętrzna potrzebuje dostępu.
  3. Wybierz pozycję Kontrola dostępu (IAM).
  4. Wybierz pozycję Dodaj —> dodaj przypisanie roli.
  5. Na liście ról funkcji zadania wybierz pozycję Czytelnik danych obiektu blob usługi Storage, a następnie wybierz pozycję Dalej. Jeśli są potrzebne uprawnienia do zapisu, wybierz pozycję Współautor danych obiektu blob usługi Storage.
  6. Na stronie Dodawanie przypisania roli wybierz pozycję + Wybierz członków. W prawym rogu zostanie otwarte okienko Wybierz członków .
  7. Wpisz nazwę żądanego konta Microsoft Entra ID. Po wyświetleniu wybierz odpowiednie konto i wybierz pozycję Wybierz.
  8. Na stronie Dodawanie przypisania roli upewnij się, że lista Członków zawiera żądane konto Microsoft Entra ID. Po zweryfikowaniu wybierz pozycję Przejrzyj i przypisz.
  9. Na stronie potwierdzenia przejrzyj zmiany i wybierz pozycję Przejrzyj i przypisz.

Konto lub grupa Microsoft Entra ID jest teraz członkiem roli Czytelnik danych obiektu blob usługi Storage i ma dostęp do folderu źródłowego.

Pozyskiwanie danych przy użyciu funkcji COPY INTO

Instrukcja COPY INTO T-SQL zapewnia elastyczne, wysokiej przepływności pozyskiwanie danych do tabel i jest podstawową strategią pozyskiwania danych do dedykowanych tabel puli SQL. Umożliwia użytkownikom pozyskiwanie danych z lokalizacji zewnętrznych bez konieczności tworzenia żadnych dodatkowych obiektów bazy danych, które są wymagane dla tabel zewnętrznych.

Instrukcja COPY INTO używa argumentu CREDENTIAL , aby określić metodę uwierzytelniania używaną do nawiązywania połączenia z kontem źródłowym. Jednak w przypadku uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft lub konta CREDENTIAL magazynu publicznego nie trzeba określać. Aby uruchomić instrukcję COPY INTO przy użyciu uwierzytelniania entra ID, użyj następującego polecenia T-SQL:

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    [<CopyIntoOptions>]
);

Gdzie:

  • <TableName> to nazwa tabeli do pozyskiwania danych.
  • <AccountName> to nazwa konta usługi ADLS Gen2.
  • <Container> to nazwa kontenera na koncie magazynu, na którym są przechowywane dane źródłowe
  • <Folder> to folder (lub ścieżka z podfolderami), w którym dane źródłowe są przechowywane w kontenerze. Możesz również podać nazwę pliku, jeśli wskazuje bezpośrednio na pojedynczy plik.
  • <CopyIntoOptions> to lista innych opcji, które mają zostać podane w instrukcji COPY INTO .

Aby dowiedzieć się więcej i zapoznać się z pełną składnią, zobacz COPY INTO (Transact-SQL).

Wykonywanie zapytań dotyczących danych w usłudze ADLS Gen2 przy użyciu tabel zewnętrznych

Tabele zewnętrzne umożliwiają użytkownikom wykonywanie zapytań dotyczących danych z kont usługi Azure Data Lake Storage (ADLS) Gen2 bez konieczności uprzedniego pozyskiwania danych. Użytkownicy mogą utworzyć tabelę zewnętrzną, która wskazuje pliki w kontenerze usługi ADLS Gen2 i wysyłać do niej zapytania tak jak zwykła tabela użytkowników.

W poniższych krokach opisano proces tworzenia nowej tabeli zewnętrznej wskazującej dane w usłudze ADLS Gen2 przy użyciu uwierzytelniania entra ID.

Tworzenie wymaganych obiektów bazy danych

Tabele zewnętrzne wymagają utworzenia następujących obiektów:

  1. Zewnętrzne źródło danych wskazujące folder źródłowy
  2. Format pliku zewnętrznego, który definiuje format plików źródłowych
  3. Definicja tabeli zewnętrznej, która jest używana dla zapytań

Aby wykonać te kroki, musisz użyć edytora SQL w obszarze roboczym usługi Azure Synapse lub preferowanego klienta SQL połączonego z dedykowaną pulą SQL. Przyjrzyjmy się szczegółowo tym krokom.

Tworzenie zewnętrznego źródła danych

Następnym krokiem jest utworzenie zewnętrznego źródła danych określającego, gdzie znajdują się dane źródłowe używane przez tabelę zewnętrzną.

Aby utworzyć zewnętrzne źródło danych, użyj następującego polecenia języka T-SQL:

CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);

Gdzie:

  • <ExternalDataSourceName> to nazwa, której chcesz użyć dla zewnętrznego źródła danych.
  • <AccountName> to nazwa konta usługi ADLS Gen2.
  • <Container> to nazwa kontenera na koncie magazynu, na którym są przechowywane dane źródłowe.
  • <Folder> to folder (lub ścieżka z podfolderami), w którym dane źródłowe są przechowywane w kontenerze.

Aby dowiedzieć się więcej na temat zewnętrznych źródeł danych, zobacz CREATE EXTERNAL DATA SOURCE (Transact-SQL).

Tworzenie formatu pliku zewnętrznego

Następnym krokiem jest utworzenie formatu pliku zewnętrznego. Określa rzeczywisty układ danych, do których odwołuje się tabela zewnętrzna.

Aby utworzyć format pliku zewnętrznego, użyj następującego polecenia języka T-SQL. Zastąp <FileFormatName> ciąg nazwą, której chcesz użyć dla formatu pliku zewnętrznego.

CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = True
    )
);

W tym przykładzie dostosuj parametry, takie jak FIELD_TERMINATOR, STRING_DELIMITER, FIRST_ROWi inne zgodnie z potrzebami zgodnie z danymi źródłowymi. Aby uzyskać więcej opcji formatowania i dowiedzieć się więcej, zobacz CREATE EXTERNAL FILE FORMAT (Transact-SQL).

Tworzenie tabeli zewnętrznej

Teraz, gdy tworzone są niezbędne obiekty przechowujące metadane w celu bezpiecznego uzyskiwania dostępu do danych zewnętrznych, nadszedł czas na utworzenie tabeli zewnętrznej. Aby utworzyć tabelę zewnętrzną, użyj następującego polecenia języka T-SQL:

-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
    Col1 INT,
    Col2 NVARCHAR(100),
    Col4 INT
)
WITH
(
    LOCATION = '<Path>',
    DATA_SOURCE = <ExternalDataSourceName>,
    FILE_FORMAT = <FileFormatName>
);

Gdzie:

  • <ExternalTableName> to nazwa, której chcesz użyć dla tabeli zewnętrznej.
  • <Path> to ścieżka danych źródłowych względem lokalizacji określonej w zewnętrznym źródle danych.
  • <ExternalDataSourceName>to nazwa utworzonego zewnętrznego źródła danych.
  • <FileFormatName>to nazwa utworzonego formatu pliku zewnętrznego.

Pamiętaj, aby dostosować nazwę tabeli i schemat do żądanej nazwy i schematu danych w plikach źródłowych.

Wykonywanie zapytań względem tabeli zewnętrznej

W tym momencie tworzone są wszystkie metadane wymagane do uzyskania dostępu do tabeli zewnętrznej. Aby przetestować tabelę zewnętrzną, użyj zapytania, takiego jak poniższy przykład języka T-SQL, aby zweryfikować swoją pracę:

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

Jeśli wszystko zostało prawidłowo skonfigurowane, dane z danych źródłowych powinny być widoczne w wyniku tego zapytania.

Aby uzyskać więcej informacji na temat CREATE EXTERNAL TABLEprogramu , zobacz CREATE EXTERNAL TABLE (Transact-SQL).