Udostępnij przez


Odbicie OneLake w bazie danych Cosmos DB w kontekście Microsoft Fabric

Każda baza danych Cosmos DB w Microsoft Fabric jest odwzorowywana do OneLake w otwartym formacie Delta Lake. Ta funkcja nie wymaga dodatkowej konfiguracji ani konfiguracji i jest automatycznie włączana po utworzeniu bazy danych. Ta ścisła integracja eliminuje potrzebę potoków ETL (Wyodrębnianie, Przekształcanie, Ładowanie) i gwarantuje, że dane Cosmos DB są zawsze gotowe do analizy.

Ta automatyczna obsługa odbicia umożliwia scenariusze, takie jak, ale nie ograniczające się do:

  • Zapytania ad hoc za pomocą języka zapytań Transact-SQL (T-SQL)
  • Integracja z platformą Apache Spark
  • Analiza danych w czasie rzeczywistym przy użyciu notebooków
  • Przepływy pracy nauki o danych i uczenia maszynowego

Stan mirroringu

Stan replikacji można sprawdzić, przechodząc do sekcji replikacji bazy danych w portalu sieci szkieletowej. Ta sekcja zawiera metadane dotyczące replikacji, w tym stan ostatniej synchronizacji.

Zrzut ekranu przedstawiający okno dialogowe stanu mirroringu dla Cosmos DB w bazie danych Fabric.

Zapytania punktu końcowego analizy SQL

Punkt końcowy analityki SQL umożliwia wykonywanie zapytań dotyczących replikowanych danych Cosmos DB bezpośrednio w portalu Fabric, przy użyciu języka T-SQL. W dowolnym momencie możesz przełączać się między eksploratorem danych NoSQL a punktem końcowym analizy języka T-SQL SQL.

Uruchamianie podstawowych zapytań

Użyj standardowej składni języka T-SQL, aby wykonywać zapytania dotyczące danych dublowanych. W poniższym przykładzie przedstawiono proste zapytanie agregacji:

SELECT
  categoryName,
  COUNT(*) AS quantity
FROM
  [<database-name>].[<database-name>].[<container-name>] -- Replace with your database and container name
GROUP BY
  categoryName

Zrzut ekranu przedstawiający zapytanie języka Transact SQL (T-SQL) przy użyciu edytora zapytań w punkcie końcowym analizy SQL dla podstawowego scenariusza.

Analizowanie przykładowych danych za pomocą zaawansowanych zapytań

W przypadku bardziej złożonych scenariuszy analitycznych można uruchamiać zapytania łączące wiele metryk i korzystać z zaawansowanych funkcji języka T-SQL. W poniższym przykładzie użyto wbudowanego zestawu danych przykładowych, aby obliczyć wskaźniki KPI produktu i przejrzeć szczegółowe informacje w różnych kategoriach. Aby uzyskać więcej informacji na temat przykładowego zestawu danych, zobacz Przykładowe zestawy danych w usłudze Cosmos DB w usłudze Microsoft Fabric.

-- Product performance analysis by category
WITH SampleData AS (
  SELECT *
  FROM [<database-name>].[<database-name>].[<container-name>] -- Replace with your database and container name
),
TopProducts AS (
  SELECT 
    categoryName,
    name,
    ROW_NUMBER() OVER (PARTITION BY categoryName ORDER BY currentPrice DESC) AS rn
  FROM SampleData
  WHERE docType = 'product'
)
SELECT
  c.categoryName,
  COUNT(DISTINCT CASE WHEN c.docType = 'product' THEN c.productId END) AS totalProducts,
  ROUND(AVG(CASE WHEN c.docType = 'review' THEN CAST(c.stars AS FLOAT) END), 2) AS avgRating,
  tp.name AS topProduct,
  SUM(CASE WHEN c.docType = 'product' THEN c.currentPrice * c.inventory END) AS totalInventoryValue
FROM SampleData AS c
LEFT JOIN TopProducts AS tp ON c.categoryName = tp.categoryName AND tp.rn = 1
GROUP BY c.categoryName, tp.name
ORDER BY avgRating DESC;

Obserwuj wyniki zapytania w edytorze zapytań:

[
  {
    "categoryName": "Devices, E-readers",
    "totalProducts": "10",
    "avgRating": "4.38",
    "topProduct": "eReader Lumina Edge X7",
    "totalInventoryValue": "890338.94"
  },
  {
    "categoryName": "Devices, Smartwatches",
    "totalProducts": "10",
    "avgRating": "4.37",
    "topProduct": "PulseSync Pro S7",
    "totalInventoryValue": "750008.86"
  },
  // Ommitted for brevity
]

Zrzut ekranu przedstawiający zaawansowane zapytanie języka Transact SQL (T-SQL) przy użyciu edytora zapytań w punkcie końcowym analizy SQL dla zaawansowanego scenariusza.

Zapytanie zagnieżdżonych tablic JSON za pomocą funkcji OPENJSON

Użyj funkcji OPENJSON do analizowania i wykonywania zapytań na zagnieżdżonych tablicach JSON w dokumentach. W poniższym przykładzie pokazano, jak analizować tablicę w priceHistory celu identyfikowania produktów o największych wzrostach cen, pomagając śledzić trendy cenowe i optymalizować strategię cenową.

-- Identify products with significant price increases
WITH PriceChanges AS (
  SELECT
    p.productId,
    p.name,
    p.categoryName,
    p.currentPrice,
    ph.priceDate,
    ph.historicalPrice,
    p.currentPrice - ph.historicalPrice AS priceIncrease,
    ROUND(((p.currentPrice - ph.historicalPrice) / ph.historicalPrice) * 100, 1) AS percentIncrease
  FROM [<database-name>].[<database-name>].[<container-name>] AS p -- Replace with your database and container name
  CROSS APPLY OPENJSON(p.priceHistory) WITH (
    priceDate datetime2,
    historicalPrice float '$.price'
  ) AS ph
  WHERE p.docType = 'product'
)
SELECT TOP 10
  name,
  categoryName,
  currentPrice,
  priceIncrease,
  percentIncrease
FROM PriceChanges
WHERE priceIncrease > 0
ORDER BY percentIncrease DESC;

Obserwuj wyniki zapytania w edytorze zapytań:

[
  {
    "name": "Resonova Elite360 Wireless ANC Headphones",
    "categoryName": "Accessories, Premium Headphones",
    "currentPrice": "523.66",
    "priceIncrease": "224.66",
    "percentIncrease": "75.1"
  },
  {
    "name": "AuraLux VX Pro Leather Case",
    "categoryName": "Accessories, Luxury Cases",
    "currentPrice": "129.96",
    "priceIncrease": "50.89",
    "percentIncrease": "64.4"
  },
  // Ommitted for brevity
]

Zrzut ekranu przedstawiający zapytanie języka Transact SQL (T-SQL) OPENJSON przy użyciu edytora zapytań w punkcie końcowym analizy SQL dla zaawansowanego scenariusza.

Dalsze kroki