Esplorare il contenuto del file usando la funzione OPENROWSET (anteprima)
si applica a:✅ Warehouse in Microsoft Fabric
La funzione OPENROWSET consente di leggere il contenuto dei file Parquet o CSV e restituire i dati come set di righe.
È possibile usare questa funzionalità per controllare il contenuto del file prima di caricarli nella tabella del data warehouse. Con OPENROWSET è possibile esplorare facilmente i file che verranno inseriti in Fabric Warehouse, comprendere le colonne da inserire e determinare i relativi tipi.
Dopo aver compreso i dati, è possibile creare le tabelle che verranno usate per archiviare il contenuto del file inserito.
Esplorare i file Parquet usando la funzione OPENROWSET
Nel primo esempio verranno esaminati i dati da un'origine Parquet.
Usare il codice seguente per leggere i dati di esempio da un file usando la funzione OPENROWSET(BULK) con un'origine Parquet:
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
Poiché questi dati sono disponibili pubblicamente e non richiedono l'autenticazione, è possibile copiare facilmente questa query nel warehouse di Fabric ed eseguirla senza modifiche.
Non sono necessari dettagli di autenticazione.
Non è necessario specificare l'opzione FORMAT
, perché la funzione OPENROWSET
presuppone che si stia leggendo il formato Parquet in base all'estensione di file .parquet
nell'URI.
Esplorare i file CSV usando la funzione OPENROWSET
Nel secondo esempio si esaminano i dati da un file CSV. Usare il codice seguente per leggere i dati di esempio da un file CSV usando la funzione 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
Poiché questi dati sono disponibili pubblicamente e non richiedono l'autenticazione, è possibile copiare facilmente questa query nel warehouse di Fabric ed eseguirla senza modifiche. Non sono necessari dettagli di autenticazione.
Non è necessario specificare l'opzione FORMAT
, perché la funzione OPENROWSET
presuppone che si stia leggendo il formato CSV
in base all'estensione di file .csv
nell'URI.
Nota
Nei risultati è possibile notare che la prima riga in questo file contiene i nomi delle colonne anziché i dati. In questo caso, sarà necessario modificare la query usando l'opzione HEADER_ROW per ignorare la riga e usarla solo per i nomi delle colonne. Questo è parte del processo di esplorazione dei dati, man mano che si modifica gradualmente il file fino a quando non corrisponde ai dati sottostanti.
Lettura di file di testo personalizzati
La funzione OPENROWSET(BULK) consente di definire varie opzioni per la lettura di file di testo personalizzati.
Ad esempio, è possibile specificare valori per ROWTERMINATOR
e FIELDTERMINATOR
per indicare il formato di file sottostante.
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,
ROW_TERMINATOR='\n',
FIELD_TERMINATOR=','
) AS data
In questo esempio si specifica in modo esplicito che si sta leggendo un file in formato CSV in cui ogni riga è separata da una nuova riga e ogni campo è separato da una virgola. La prima riga contiene l'intestazione , che verrà usata per i nomi delle colonne.
Esplorare i metadati delle colonne
Con la funzione OPENROWSET
è possibile visualizzare facilmente le colonne di file e i relativi tipi combinando la query che legge i dati di esempio con la routine sp_describe_first_result_set
:
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 questo esempio, la routine sp_describe_first_result_set
esegue la query con la funzione OPENROWSET
, che restituisce 0 righe.
Prende poi lo schema di colonna da questa query interna e restituisce lo schema della colonna come risultato della procedura.
È possibile usare questo schema di colonna per definire la struttura della tabella di destinazione nell'istruzione CREATE TABLE in cui inserire i dati. In alternativa, è possibile usare questi risultati per specificare tipi più precisi per i risultati della funzione OPENROWSET, come illustrato nell'esempio seguente.
Specificare lo schema della funzione OPENROWSET
La funzione OPENROWSET(BULK)
restituisce i tipi di colonna stimati in base a un campione dei dati.
Se l'esempio non è rappresentativo, è possibile ottenere tipi imprevisti o le relative dimensioni.
Se si conoscono i tipi di colonna nei file, è possibile definire in modo esplicito lo schema delle colonne usando la clausola WITH:
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;
Invece di indovinare i tipi di colonna, la funzione OPENROWSET(BULK)
assegnerà in modo esplicito i tipi forniti nella clausola WITH
.
In questo modo è possibile definire tipi più precisi, che possono migliorare le prestazioni delle query.
Passaggi successivi
Dopo aver completato l'esplorazione dei file e la creazione di tabelle di destinazione, è possibile procedere con l'inserimento usando uno dei metodi seguenti: