Plug-in infer_storage_schemainfer_storage_schema plugin

Questo plug-in deduce lo schema dei dati esterni e lo restituisce come stringa dello schema CSI.This plug-in infers schema of external data, and returns it as CSL schema string. La stringa può essere utilizzata durante la creazione di tabelle esterne.The string can be used when creating external tables.

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
  ],
  'DataFormat': 'parquet',
  'FileExtension': '.parquet'
});
evaluate infer_storage_schema(options)

SintassiSyntax

evaluate infer_storage_schema( Opzioni )evaluate infer_storage_schema( Options )

ArgomentiArguments

Un singolo argomento di Opzioni è un valore costante di tipo dynamic che include un contenitore delle proprietà che specifica le proprietà della richiesta:A single Options argument is a constant value of type dynamic that holds a property bag specifying properties of the request:

NomeName ObbligatoriaRequired DescrizioneDescription
StorageContainers Yes Elenco di stringhe di connessione di archiviazione che rappresentano l'URI del prefisso per gli elementi di dati archiviatiList of storage connection strings that represent prefix URI for stored data artifacts
DataFormat Yes Uno dei formati di datisupportati.One of supported data formats.
FileExtension NoNo Analizza solo i file che terminano con questa estensione di file.Only scan files ending with this file extension. Non è obbligatorio, ma è possibile velocizzare il processo o eliminare i problemi di lettura dei dati.It's not required, but specifying it may speed up the process (or eliminate data reading issues)
FileNamePrefix NoNo Analizza solo i file che iniziano con questo prefisso.Only scan files starting with this prefix. Non è obbligatorio, ma specificando che può velocizzare il processoIt's not required, but specifying it may speed up the process
Mode NoNo Strategia di inferenza dello schema, uno dei seguenti: any , last , all .Schema inference strategy, one of: any, last, all. Dedurre lo schema dei dati da qualsiasi file (prima trovato), dall'ultimo file scritto o da tutti i file rispettivamente.Infer data schema from any (first found) file, from last written file, or from all files respectively. Il valore predefinito è last.The default value is last.

RestituisceReturns

Il infer_storage_schema plug-in restituisce una singola tabella dei risultati contenente una singola riga/colonna contenente una stringa dello schema CSL.The infer_storage_schema plugin returns a single result table containing a single row/column holding CSL schema string.

Nota

  • Le chiavi segrete dell'URI del contenitore di archiviazione devono avere le autorizzazioni per l' elenco oltre che per la lettura.Storage container URI secret keys must have the permissions for List in addition to Read.
  • La strategia di inferenza dello schema ' all'è un'operazione molto costosa, perché implica la lettura di tutti gli artefatti trovati e l'Unione dello schema.Schema inference strategy 'all' is a very "expensive" operation, as it implies reading from all artifacts found and merging their schema.
  • Alcuni tipi restituiti potrebbero non essere quelli effettivi in seguito a un'ipotesi di tipo errato (o, come risultato del processo di Unione dello schema).Some returned types may not be the actual ones as a result of wrong type guess (or, as a result of schema merge process). Questo è il motivo per cui è consigliabile esaminare attentamente il risultato prima di creare una tabella esterna.This is why you should review the result carefully before creating an external table.

EsempioExample

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/MovileEvents/2015;secretKey'
  ],
  'FileExtension': '.parquet',
  'FileNamePrefix': 'part-',
  'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)

RisultatoResult

CslSchemaCslSchema
app_id: String, user_id: Long, event_time: DateTime, Country: String, City: String, device_type: String, device_vendor: String, ad_network: String, Campaign: String, site_id: String, event_type: String, event_name: String, Organic: String, days_from_install: int, Revenue: Realapp_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real