Delen via


Bestandsinhoud doorbladeren met de functie OPENROWSET

van toepassing op:✅ Warehouse in Microsoft Fabric

Met de functie OPENROWSET kunt u de inhoud van Parquet- of CSV-bestanden lezen en de gegevens retourneren als een set rijen. De bestanden kunnen worden opgeslagen in Azure Blob Storage, Azure Data Lake Storage of Fabric OneLake.

Important

Het lezen van bestanden uit Fabric OneLake-opslag met behulp van de functie OPENROWSET is momenteel beschikbaar als preview-versie.

U kunt deze functie gebruiken om de inhoud van het bestand te controleren voordat u ze in uw datawarehouse-tabel laadt. Met OPENROWSET kunt u eenvoudig de bestanden verkennen die u in uw Fabric Warehouse opneemt, inzicht krijgen in de kolommen die u opneemt en hun typen bepalen.

Zie Query's uitvoeren op externe Data Lake-bestanden met behulp van Fabric Data Warehouse of SQL Analytics-eindpunt voor meer informatie en voorbeelden over het uitvoeren van query's op externe gegevens.

Zodra u uw gegevens begrijpt, kunt u de tabellen maken die worden gebruikt om de opgenomen bestandsinhoud op te slaan.

Blader door Parquet-bestanden met de functie OPENROWSET

In het eerste voorbeeld inspecteren we gegevens uit een Parquet-bron.

Gebruik de volgende code om voorbeeldgegevens uit een bestand te lezen met behulp van de functie OPENROWSET(BULK) met een Parquet-bron:

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet') AS data

Omdat deze gegevens openbaar beschikbaar zijn en geen verificatie vereist, kunt u deze query eenvoudig kopiëren naar uw Fabric-magazijn en deze zonder wijzigingen uitvoeren.

Er zijn geen verificatiegegevens nodig.

U hoeft de FORMAT optie niet op te geven, omdat de OPENROWSET functie ervan uitgaat dat u de Parquet-indeling leest op basis van de .parquet bestandsextensie in de URI.

Door CSV-bestanden bladeren met behulp van de functie OPENROWSET

In het tweede voorbeeld controleren we gegevens uit een CSV-bestand. Gebruik de volgende code om voorbeeldgegevens uit een CSV-bestand te lezen met behulp van de functie OPENROWSET(BULK):

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data

Omdat deze gegevens openbaar beschikbaar zijn en geen verificatie vereist, kunt u deze query eenvoudig kopiëren naar uw Fabric-magazijn en deze zonder wijzigingen uitvoeren. Er zijn geen verificatiegegevens nodig.

U hoeft de FORMAT optie niet op te geven, omdat de OPENROWSET functie ervan uitgaat dat u de CSV indeling leest op basis van de .csv bestandsextensie in de URI.

Note

In de resultaten ziet u mogelijk dat de eerste rij in dit bestand de kolomnamen bevat in plaats van gegevens. In dit geval moet u de query wijzigen met behulp van de optie HEADER_ROW om de rij over te slaan en deze alleen te gebruiken voor de kolomnamen. Dit maakt deel uit van het gegevensverkenningsproces, omdat u het bestand geleidelijk aanpast totdat het overeenkomt met de onderliggende gegevens.

Door JSONL-bestanden bladeren met behulp van de functie OPENROWSET

Met de OPENROWSET(BULK) functie kunt u door de JSON-bestanden bladeren in regelgebaseerd formaat.

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.jsonl') AS data

Als het bestand regelscheidingstekens bevat waarin elke regel een geldig JSON-document vertegenwoordigt, kan de OPENROWSET functie worden gebruikt om het rechtstreeks te lezen.

U hoeft de FORMAT optie niet expliciet op te geven. De OPENROWSET JSONL-indeling wordt automatisch afgeleid op basis van algemene bestandsextensies zoals .jsonl, .ldjsonof .ndjson in de URI. Als u echter een andere bestandsextensie voor deze indeling gebruikt, moet u opgeven FORMAT = 'jsonl' om ervoor te zorgen dat de parsering juist is.

Bestanden lezen in Fabric OneLake

Met de OPENROWSET(BULK) functie kunt u de bestanden lezen die zijn opgeslagen in Fabric OneLake. Als uw bestand is opgeslagen in de sectie Bestanden van een lakehouse, kunt u dit bestand lezen met de volgende syntaxis:

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<lakehouseId>/Files/latest/bing_covid-19_data.jsonl') AS data

Vervang <workspaceId> en <lakehouseId> met de werkruimte-GUID en lakehouse-GUID die je kunt vinden in de URI van de Fabric-werkruimte. Zorg ervoor dat u verwijst naar de bestanden in de /Files sectie van een lakehouse.

Aangepaste tekstbestanden lezen

Met de OPENROWSET(BULK) functie kunt u verschillende opties definiëren voor het lezen van aangepaste tekstbestanden.

U kunt bijvoorbeeld waarden opgeven voor ROWTERMINATOR en FIELDTERMINATOR om de onderliggende bestandsindeling aan te geven.

select *
from OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv',
                FORMAT='CSV',
                HEADER_ROW=True,
                ROWTERMINATOR='\n',
                FIELDTERMINATOR=','
) AS data

In dit voorbeeld geven we expliciet op dat we een bestand lezen in CSV-indeling waarbij elke rij wordt gescheiden door een nieuwe regel en elk veld wordt gescheiden door een komma. De eerste rij bevat de koptekst, die wordt gebruikt voor de kolomnamen.

Metagegevens van kolommen verkennen

Met de OPENROWSET functie kunt u eenvoudig de bestandskolommen en de bijbehorende typen bekijken door de query te combineren die voorbeeldgegevens leest met de sp_describe_first_result_set procedure:

EXEC sp_describe_first_result_set 
N'SELECT TOP 0 * 
FROM OPENROWSET(BULK ''https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'') AS data';

In dit voorbeeld voert de sp_describe_first_result_set procedure de query uit met de OPENROWSET functie, die geen rijen retourneert.

Vervolgens wordt het kolomschema uit deze binnenste query genomen en wordt het kolomschema geretourneerd als resultaat van de procedure.

U kunt dit kolomschema gebruiken om de structuur van de doeltabel te definiëren in de CREATE TABLE instructie waarin u uw gegevens opneemt. Als alternatief kunt u deze resultaten gebruiken om nauwkeurigere typen op te geven voor de resultaten van de OPENROWSET functie, zoals wordt weergegeven in het volgende voorbeeld.

Geef het schema van de functie OPENROWSET op

De OPENROWSET(BULK) functie retourneert geschatte kolomtypen op basis van een voorbeeld van de gegevens.

Als het voorbeeld niet representatief is, krijgt u mogelijk onverwachte typen of hun grootten.

Als u de kolomtypen in uw bestanden kent, kunt u het schema van de kolommen expliciet definiëren met behulp van de WITH-component:

SELECT TOP 10 * 
FROM OPENROWSET(BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv') AS data
WITH (updated date,
      load_time datetime2,
      deaths_change smallint,
      id int,
      confirmed int,
      confirmed_change int,
      deaths int,
      recovered int,
      recovered_change int,
      latitude float,
      longitude float,
      iso2 varchar(8000),
      iso3 varchar(8000),
      country_region varchar(8000),
      admin_region_1 varchar(8000),
      iso_subdivision varchar(8000),
      admin_region_2 varchar(8000)
) AS data;

In plaats van de kolomtypen te raden, wijst de OPENROWSET(BULK) functie expliciet de typen toe die zijn opgegeven in de WITH component.

Op deze manier kunt u nauwkeurigere typen definiëren, waardoor de prestaties van uw query's kunnen worden verbeterd.

Volgende stappen

Nadat u het verkennen van bestanden en het maken van doeltabellen hebt voltooid, kunt u doorgaan met opnemen met een van de volgende methoden: