Megosztás a következőn keresztül:


Oktatóanyag: Adattavak feltárása és elemzése kiszolgáló nélküli SQL-készlettel

Ebben az oktatóanyagban megtudhatja, hogyan végezhet feltáró adatelemzést meglévő nyitott adatkészletek használatával, tárterület-beállítás nélkül. Különböző Azure Open-adatkészleteket kombinálhat kiszolgáló nélküli SQL-készlet használatával. Ezután az eredményeket az Azure Synapse Analyticshez készült Synapse Studióban jelenítheti meg.

Az oktatóanyag során az alábbi lépéseket fogja végrehajtani:

  • A beépített kiszolgáló nélküli SQL-készlet elérése
  • Azure Open Datasets elérése oktatóanyag-adatok használatához
  • Alapszintű adatelemzés végrehajtása AZ SQL használatával

A kiszolgáló nélküli SQL-készlet elérése

Minden munkaterülethez tartozik egy előre konfigurált kiszolgáló nélküli SQL-készlet, amelyet beépítettnek nevezünk. A hozzáféréshez:

  1. Nyissa meg a munkaterületet, és válassza a Fejlesztési központot.
  2. Válassza az + Új erőforrás hozzáadása gombot."
  3. Válassza az SQL-szkriptet.

Ezzel a szkripttel anélkül vizsgálhatja meg az adatokat, hogy le kellene foglalnia az SQL-kapacitást.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Az oktatóanyag adatainak elérése

Az oktatóanyagban használt összes adat az azureopendatastorage tárfiókban található, amely az Azure Open Datasets-et tárolja a nyílt használatra az ilyen oktatóanyagokban. Az összes szkriptet futtathatja közvetlenül a munkaterületről, amíg a munkaterület hozzáfér egy nyilvános hálózathoz.

Ez az oktatóanyag egy Adatkészletet használ a New York City (NYC) Taxiról:

  • Pick-up és drop-off dátumok és időpontok
  • Pick-up és drop-off helyek
  • Utazási távolságok
  • Tételes viteldíjak
  • Díjtípusok
  • Kifizetéstípusok
  • Vezető által jelentett utasok száma

A OPENROWSET(BULK...) függvény lehetővé teszi a fájlok elérését az Azure Storage-ban. [OPENROWSET](develop-openrowset.md) Beolvassa egy távoli adatforrás( például egy fájl) tartalmát, és sorhalmazként adja vissza a tartalmat.

Az NYC Taxi adatainak megismeréséhez futtassa a következő lekérdezést:

SELECT TOP 100 * FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [nyc]

Egyéb akadálymentes adatkészletek

Hasonlóképpen az ünnepnapok adatkészletét is lekérdezheti a következő lekérdezéssel:

SELECT TOP 100 * FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/holidaydatacontainer/Processed/*.parquet',
        FORMAT='PARQUET'
    ) AS [holidays]

Az időjárási adathalmazt az alábbi lekérdezéssel is lekérdezheti:

SELECT
    TOP 100 *
FROM  
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/isdweatherdatacontainer/ISDWeather/year=*/month=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [weather]

Az egyes oszlopok jelentéséről az adathalmazok leírásában olvashat bővebben:

Automatikus sémakövetkeztetés

Mivel az adatok Parquet-fájlformátumban tárolódnak, az automatikus sémakövetkeztetés elérhető. Az adatokat anélkül kérdezheti le, hogy felsorolja a fájlok összes oszlopának adattípusát. A virtuális oszlop mechanizmusát és a függvényt is használhatja a filepath fájlok egy bizonyos részhalmazának szűréséhez.

Feljegyzés

Az alapértelmezett rendezés a következő SQL_Latin1_General_CP1_CI_ASIf: . Nem alapértelmezett rendezés esetén vegye figyelembe a kis- és nagybetűk érzékenységét.

Ha az oszlopok megadásakor kis- és nagybetűk megkülönböztetésével rendelkező adatbázist hoz létre, ügyeljen arra, hogy az oszlop helyes nevét használja.

Az oszlopnév tpepPickupDateTime helyes lenne, de tpeppickupdatetime nem alapértelmezett rendezés esetén nem működne.

Idősor, szezonalitás és kiugró elemzés

A taxijáratok éves számát az alábbi lekérdezéssel összegzheti:

SELECT
    YEAR(tpepPickupDateTime) AS current_year,
    COUNT(*) AS rides_per_year
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [nyc]
WHERE nyc.filepath(1) >= '2009' AND nyc.filepath(1) <= '2019'
GROUP BY YEAR(tpepPickupDateTime)
ORDER BY 1 ASC

Az alábbi kódrészlet a taxijáratok éves számának eredményét mutatja be:

Képernyőkép a taxijáratok éves számáról.

Az adatok megjeleníthetők a Synapse Studióban a Táblázat nézetről a Diagram nézetre való váltással. Különböző diagramtípusok közül választhat, például Terület, Sáv, Oszlop, Vonal, Kör és Pont. Ebben az esetben ábrázolja az Oszlop diagramot a Kategória oszlop current_year:

Képernyőkép egy oszlopdiagramról, amely évente jeleníti meg a túrákat.

Ebből a vizualizációból látható, hogy az évek során csökken a menetszámok száma. Ez a csökkenés feltehetően a ride-sharing cégek nemrég megnövekedett népszerűségének köszönhető.

Feljegyzés

Az oktatóanyag írásakor a 2019-beli adatok hiányosak. Ennek eredményeképpen az adott évben hatalmas csökkenés tapasztalható az utazások számában.

Az elemzést egyetlen évre, például 2016-ra összpontosíthatja. Az alábbi lekérdezés az adott év során a túrák napi számát adja vissza:

SELECT
    CAST([tpepPickupDateTime] AS DATE) AS [current_day],
    COUNT(*) as rides_per_day
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [nyc]
WHERE nyc.filepath(1) = '2016'
GROUP BY CAST([tpepPickupDateTime] AS DATE)
ORDER BY 1 ASC

Az alábbi kódrészlet a lekérdezés eredményét jeleníti meg:

Képernyőkép a 2016-os eredmények napi menetszámáról.

Az adatokat úgy is megjelenítheti, hogy az Oszlopdiagramot a Kategória oszlop current_day, a Jelmagyarázat (adatsor) oszlopot pedig rides_per_day értékre állítja.

Képernyőkép egy oszlopdiagramról, amely a 2016-os utazások napi számát jeleníti meg.

A diagramon egy heti minta látható, a szombatok pedig a csúcsnapok. A nyári hónapokban a nyaralások miatt kevesebb taxival járnak. Is, figyelje meg néhány jelentős csökkenése a taxi túrák száma nélkül egyértelmű mintát, hogy mikor és miért fordulnak elő.

Következő lépésként ellenőrizze, hogy az utazások csökkenése összefügg-e a munkaszüneti napokkal. Ellenőrizze, hogy van-e korreláció az NYC Taxi rides adathalmazhoz való csatlakozással az ünnepnapok adatkészletével:

WITH taxi_rides AS (
SELECT
    CAST([tpepPickupDateTime] AS DATE) AS [current_day],
    COUNT(*) as rides_per_day
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=*/puMonth=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [nyc]
WHERE nyc.filepath(1) = '2016'
GROUP BY CAST([tpepPickupDateTime] AS DATE)
),
public_holidays AS (
SELECT
    holidayname as holiday,
    date
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/holidaydatacontainer/Processed/*.parquet',
        FORMAT='PARQUET'
    ) AS [holidays]
WHERE countryorregion = 'United States' AND YEAR(date) = 2016
),
joined_data AS (
SELECT
    *
FROM taxi_rides t
LEFT OUTER JOIN public_holidays p on t.current_day = p.date
)

SELECT 
    *,
    holiday_rides = 
    CASE   
      WHEN holiday is null THEN 0   
      WHEN holiday is not null THEN rides_per_day
    END   
FROM joined_data
ORDER BY current_day ASC

Képernyőkép az N Y C taxiutakról és az ünnepnapok adatkészleteinek eredményéről.

Emelje ki a tömegközlekedési utak számát a munkaszüneti napokon. Ehhez válassza a Kategória oszlop current_day, rides_per_day és holiday_rides jelmagyarázat (sorozat) oszlopként.

Képernyőkép a munkaszüneti napokon a taxiutak számáról diagramként.

A diagramon látható, hogy ünnepnapokon a taxiutak száma alacsonyabb. Január 23-án még mindig van egy megmagyarázhatatlan nagy visszaesés. Ellenőrizzük az adott napon az NYC időjárását a Weather Dataset lekérdezésével:

SELECT
    AVG(windspeed) AS avg_windspeed,
    MIN(windspeed) AS min_windspeed,
    MAX(windspeed) AS max_windspeed,
    AVG(temperature) AS avg_temperature,
    MIN(temperature) AS min_temperature,
    MAX(temperature) AS max_temperature,
    AVG(sealvlpressure) AS avg_sealvlpressure,
    MIN(sealvlpressure) AS min_sealvlpressure,
    MAX(sealvlpressure) AS max_sealvlpressure,
    AVG(precipdepth) AS avg_precipdepth,
    MIN(precipdepth) AS min_precipdepth,
    MAX(precipdepth) AS max_precipdepth,
    AVG(snowdepth) AS avg_snowdepth,
    MIN(snowdepth) AS min_snowdepth,
    MAX(snowdepth) AS max_snowdepth
FROM
    OPENROWSET(
        BULK 'https://azureopendatastorage.blob.core.windows.net/isdweatherdatacontainer/ISDWeather/year=*/month=*/*.parquet',
        FORMAT='PARQUET'
    ) AS [weather]
WHERE countryorregion = 'US' AND CAST([datetime] AS DATE) = '2016-01-23' AND stationname = 'JOHN F KENNEDY INTERNATIONAL AIRPORT'

Képernyőkép a Weather Data dataset eredményvizualizációról.

A lekérdezés eredményei azt jelzik, hogy a taxis utak számának csökkenése a következő ok miatt történt:

  • Volt egy hóvihar ezen a napon a NYC-ben a nagy hó (~30 cm).
  • Hideg volt (a hőmérséklet nulla Celsius fok alatt volt).
  • Szeles volt (~10 m/s).

Ez az oktatóanyag bemutatja, hogy az adatelemzők hogyan végezhetnek gyorsan feltáró adatelemzést. A különböző adathalmazokat kiszolgáló nélküli SQL-készlet használatával kombinálhatja, és az eredményeket az Azure Synapse Studióval jelenítheti meg.

A kiszolgáló nélküli SQL-készlet Power BI Desktophoz való csatlakoztatásáról és jelentések létrehozásáról a Kiszolgáló nélküli SQL-készlet csatlakoztatása a Power BI Desktophoz és jelentések létrehozása című témakörben olvashat.

A külső táblák kiszolgáló nélküli SQL-készletben való használatának megismeréséhez lásd : Külső táblák használata a Synapse SQL-sel