Condividi tramite


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: