Udostępnij za pośrednictwem


Pozyskiwanie danych do magazynu

Dotyczy:✅ Magazyn w usłudze Microsoft Fabric

Magazyn w usłudze Microsoft Fabric oferuje wbudowane narzędzia do pozyskiwania danych, które umożliwiają użytkownikom pozyskiwanie danych do magazynów na dużą skalę przy użyciu środowisk bez użycia kodu lub zaawansowanych w kodzie.

Opcje pozyskiwania danych

Dane można pozyskiwać do magazynu przy użyciu jednej z następujących opcji:

  • COPY (Transact-SQL): instrukcja COPY oferuje elastyczne pozyskiwanie danych o wysokiej przepływności z zewnętrznego konta usługi Azure Storage. Instrukcję COPY można użyć w ramach istniejącej logiki ETL/ELT w kodzie Języka Transact-SQL.
  • Potoki danych: potoki oferują środowisko bez kodu lub z małą ilością kodu na potrzeby pozyskiwania danych. Za pomocą potoków można organizować niezawodne przepływy pracy dla pełnego środowiska wyodrębniania, przekształcania, ładowania (ETL), które obejmuje działania ułatwiające przygotowanie środowiska docelowego, uruchamianie niestandardowych instrukcji języka Transact-SQL, wyszukiwanie lub kopiowanie danych ze źródła do miejsca docelowego.
  • Przepływy danych: alternatywa dla potoków, przepływów danych umożliwia łatwe przygotowywanie, czyszczenie i przekształcanie danych przy użyciu środowiska bez użycia kodu.
  • Pozyskiwanie danych między magazynami: pozyskiwanie danych ze źródeł obszarów roboczych jest również możliwe. Ten scenariusz może być wymagany w przypadku konieczności utworzenia nowej tabeli z podzbiorem innej tabeli lub w wyniku połączenia różnych tabel w magazynie i w magazynie. W przypadku pozyskiwania danych między magazynami oprócz wymienionych opcji funkcje języka Transact-SQL, takie jak INSERT... WYBIERZ, WYBIERZ DO LUB UTWÓRZ TABELĘ JAKO SELECT (CTAS) działają między magazynami w tym samym obszarze roboczym.

Wybieranie narzędzia do pozyskiwania danych do użycia

Aby zdecydować, która opcja pozyskiwania danych ma być używana, możesz użyć następujących kryteriów:

  • Użyj instrukcji COPY (Transact-SQL) dla operacji pozyskiwania danych bogatych w kod, w celu uzyskania największej możliwej przepływności pozyskiwania danych lub gdy musisz dodać pozyskiwanie danych w ramach logiki transact-SQL. Aby uzyskać informacje o składni, zobacz COPY INTO (Transact-SQL).
  • Używaj potoków danych dla przepływów pracy pozyskiwania danych bez użycia kodu lub z małą ilością kodu, które są uruchamiane wielokrotnie, zgodnie z harmonogramem lub obejmują duże ilości danych. Aby uzyskać więcej informacji, zobacz Pozyskiwanie danych przy użyciu potoków danych.
  • Użyj przepływów danych w środowisku bez użycia kodu, które umożliwiają niestandardowe przekształcenia danych źródłowych przed ich pozyskiwaniem. Te przekształcenia obejmują (ale nie tylko) zmienianie typów danych, dodawanie lub usuwanie kolumn lub używanie funkcji do tworzenia kolumn obliczeniowych. Aby uzyskać więcej informacji, zobacz Przepływy danych.
  • Pozyskiwanie danych między magazynami umożliwia tworzenie nowych tabel z danymi źródłowymi w tym samym obszarze roboczym za pomocą środowisk bogatych w kod. Aby uzyskać więcej informacji, zobacz Pozyskiwanie danych przy użyciu języka Transact-SQL i Pisanie zapytania obejmującego wiele baz danych.

Uwaga

Instrukcja COPY w magazynie obsługuje tylko źródła danych na kontach usługi Azure Storage. Źródła oneLake nie są obecnie obsługiwane.

Obsługiwane formaty danych i źródła

Pozyskiwanie danych dla magazynu w usłudze Microsoft Fabric oferuje ogromną liczbę formatów danych i źródeł, których można użyć. Każda z opisanych opcji zawiera własną listę obsługiwanych typów łączników danych i formatów danych.

W przypadku pozyskiwania danych między magazynami źródła danych muszą znajdować się w tym samym obszarze roboczym usługi Microsoft Fabric. Zapytania można wykonywać przy użyciu trzyczęściowego nazewnictwa dla danych źródłowych.

Załóżmy na przykład, że w obszarze roboczym znajdują się dwa magazyny o nazwie Inventory (Spis) i Sales (Sprzedaż). Zapytanie, takie jak poniższe, tworzy nową tabelę w magazynie Inventory z zawartością tabeli w magazynie Inventory, połączoną z tabelą w magazynie Sales:

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'

Instrukcja COPY (Transact-SQL) obecnie obsługuje formaty plików PARQUET i CSV. W przypadku źródeł danych obecnie obsługiwane są usługi Azure Data Lake Storage (ADLS) Gen2 i Azure Blob Storage.

Potoki danych i przepływy danych obsługują szeroką gamę źródeł danych i formatów danych. Aby uzyskać więcej informacji, zobacz Potoki danych i Przepływy danych.

Najlepsze rozwiązania

Funkcja polecenia COPY w magazynie w usłudze Microsoft Fabric używa prostego, elastycznego i szybkiego interfejsu do pozyskiwania danych o wysokiej przepływności dla obciążeń SQL. W bieżącej wersji obsługujemy tylko ładowanie danych z zewnętrznych kont magazynu.

Możesz również użyć języka TSQL, aby utworzyć nową tabelę, a następnie wstawić ją, a następnie zaktualizować i usunąć wiersze danych. Dane można wstawić z dowolnej bazy danych w obszarze roboczym usługi Microsoft Fabric przy użyciu zapytań obejmujących wiele baz danych. Jeśli chcesz pozyskać dane z usługi Lakehouse do magazynu, możesz to zrobić za pomocą zapytania obejmującego wiele baz danych. Na przykład:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Unikaj pozyskiwania danych przy użyciu instrukcji SINGLETON INSERT , ponieważ powoduje to niską wydajność zapytań i aktualizacji. Jeśli instrukcje SINGLETON INSERT były używane do pozyskiwania danych kolejno, zalecamy utworzenie nowej tabeli przy użyciu polecenia CREATE TABLE AS SELECT (CTAS) lub INSERT... WYBIERZ wzorce, upuszczając oryginalną tabelę, a następnie ponownie utwórz tabelę z tabeli utworzonej przy użyciu polecenia CREATE TABLE AS SELECT (CTAS).
    • Usunięcie istniejącej tabeli wpływa na model semantyczny, w tym wszelkie niestandardowe miary lub dostosowania, które mogły zostać wprowadzone do modelu semantycznego.
  • Podczas pracy z danymi zewnętrznymi w plikach zalecamy, aby pliki mają rozmiar co najmniej 4 MB.
  • W przypadku dużych skompresowanych plików CSV rozważ podzielenie pliku na wiele plików.
  • Usługa Azure Data Lake Storage (ADLS) Gen2 oferuje lepszą wydajność niż usługa Azure Blob Storage (starsza wersja). Jeśli to możliwe, rozważ użycie konta usługi ADLS Gen2.
  • W przypadku potoków, które są uruchamiane często, rozważ izolowanie konta usługi Azure Storage z innych usług, które mogą jednocześnie uzyskiwać dostęp do tych samych plików.
  • Jawne transakcje umożliwiają grupowanie wielu zmian danych w taki sposób, aby były widoczne tylko podczas odczytywania co najmniej jednej tabeli, gdy transakcja jest w pełni zatwierdzona. Istnieje również możliwość wycofania transakcji, jeśli którakolwiek ze zmian nie powiedzie się.
  • Jeśli element SELECT znajduje się w transakcji i został poprzedzony wstawianiami danych, automatycznie wygenerowane statystyki mogą być niedokładne po wycofaniu. Niedokładne statystyki mogą prowadzić do niezoptymalizowanego czasu wykonywania i planów zapytań. Jeśli wycofasz transakcję z funkcją SELECTs po dużej operacji INSERT, zaktualizuj statystyki kolumn wymienionych w elembacie SELECT.

Uwaga

Niezależnie od sposobu pozyskiwania danych do magazynów pliki parquet generowane przez zadanie pozyskiwania danych zostaną zoptymalizowane przy użyciu optymalizacji zapisu W-Order. V-Order optymalizuje pliki parquet, aby umożliwić błyskawiczne odczyty w aparatach obliczeniowych usługi Microsoft Fabric, takich jak Power BI, SQL, Spark i inne. Zapytania magazynu w ogóle korzystają z krótszych czasów odczytu zapytań dzięki tej optymalizacji, zapewniając, że pliki parquet są w 100% zgodne ze specyfikacją open source. W przeciwieństwie do inżynierowie danych sieci szkieletowej, V-Order jest ustawieniem globalnym w magazynie danych sieci szkieletowej, którego nie można wyłączyć. Aby uzyskać więcej informacji na temat zamówienia wirtualnego, zobacz Omówienie zamówienia V-Order for Warehouse i zarządzanie nim.