Compartir a través de


Examinar el contenido del archivo mediante la función OPENROWSET

se aplica a:✅ Warehouse en Microsoft Fabric

La función OPENROWSET permite leer el contenido de los archivos Parquet o CSV y devolver los datos como un conjunto de filas.

Puede usar esta característica para inspeccionar el contenido del archivo antes de cargarlos en la tabla de almacenamiento de datos. Usando OPENROWSET, puede explorar fácilmente los archivos que va a ingerir en Fabric Warehouse, comprender las columnas que está incorporando y determinar sus tipos.

Una vez que comprenda los datos, puede crear las tablas que se usarán para almacenar el contenido del archivo ingerido.

Examinar archivos Parquet mediante la función OPENROWSET

En el primer ejemplo, inspeccionaremos los datos de un origen de Parquet.

Use el código siguiente para leer datos de ejemplo de un archivo mediante la función OPENROWSET(BULK) con un origen 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

Dado que estos datos están disponibles públicamente y no requieren autenticación, puede copiar fácilmente esta consulta en el almacenamiento de Fabric y ejecutarla sin cambios.

No se necesitan detalles de autenticación.

No es necesario especificar la opción FORMAT, ya que la función OPENROWSET supone que está leyendo el formato Parquet en función de la extensión de archivo .parquet en el URI.

Examinar archivos CSV mediante la función OPENROWSET

En el segundo ejemplo, inspeccionamos los datos de un archivo CSV. Use el código siguiente para leer datos de ejemplo de un archivo CSV mediante la función 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

Dado que estos datos están disponibles públicamente y no requieren autenticación, puede copiar fácilmente esta consulta en el almacenamiento de Fabric y ejecutarla sin cambios. No se necesitan detalles de autenticación.

No es necesario especificar la opción FORMAT, ya que la función OPENROWSET asume que está leyendo el formato CSV en función de la extensión de archivo .csv en el URI.

Nota

En los resultados, es posible que observe que la primera fila de este archivo contiene los nombres de columna en lugar de los datos. En este caso, deberá modificar la consulta mediante la opción HEADER_ROW para omitir la fila y usarla solo para los nombres de columna. Esto forma parte del proceso de exploración de datos, ya que ajusta gradualmente el archivo hasta que coincide con los datos subyacentes.

Leer archivos de texto personalizados

La función OPENROWSET(BULK) permite definir varias opciones para leer archivos de texto personalizados. Por ejemplo, puede especificar valores para ROWTERMINATOR y FIELDTERMINATOR para indicar el formato de archivo subyacente.

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

En este ejemplo, especificamos explícitamente que estamos leyendo un archivo en formato CSV donde cada fila está separada por una nueva línea y cada campo está separado por una coma. La primera fila contiene el encabezado , que se usará para los nombres de columna.

Exploración de metadatos de columna

Con la función OPENROWSET, puede ver fácilmente las columnas de archivo y sus tipos combinando la consulta que lee datos de ejemplo con el procedimiento 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';

En este ejemplo, el procedimiento sp_describe_first_result_set ejecuta la consulta con la función OPENROWSET, que devuelve 0 filas. A continuación, toma el esquema de columna de esta consulta interna y devuelve el esquema de columna como resultado del procedimiento.

Puede usar este esquema de columna para definir la estructura de la tabla de destino en la instrucción CREATE TABLE donde ingiere los datos. Como alternativa, puede usar estos resultados para especificar tipos más precisos para los resultados de la función OPENROWSET, como se muestra en el ejemplo siguiente.

Especificar el esquema de la función OPENROWSET

La función OPENROWSET(BULK) devuelve tipos de columna estimados en función de una muestra de los datos.

Si la muestra no es representativa, es posible que obtenga tipos inesperados o tamaños inesperados.

Si conoce los tipos de columna de los archivos, puede definir explícitamente el esquema de las columnas mediante la cláusula 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;

En lugar de adivinar los tipos de columna, la función OPENROWSET(BULK) asignará explícitamente los tipos proporcionados en la cláusula WITH.

De este modo, puede definir tipos más precisos, lo que puede mejorar el rendimiento de las consultas.