Condividi tramite


plug-in infer_storage_schema_with_suggestions

Si applica a: ✅Microsoft FabricAzure Esplora dati

Questo infer_storage_schema_with_suggestions plug-in deduce lo schema dei dati esterni e restituisce un oggetto JSON. Per ogni colonna, l'oggetto fornisce un tipo dedotto, un tipo consigliato e la trasformazione di mapping consigliata. Il tipo e il mapping consigliati vengono forniti dalla logica dei suggerimenti che determina il tipo ottimale usando la logica seguente:

  • Colonne Identity: se il tipo dedotto per una colonna è long e il nome della colonna termina con id, il tipo suggerito è string perché fornisce l'indicizzazione ottimizzata per le colonne Identity in cui i filtri di uguaglianza sono comuni.
  • Colonne datetime Unix: se il tipo dedotto per una colonna è long e una delle trasformazioni di mapping unix-time a datetime produce un valore datetime valido, il tipo suggerito è datetime e il mapping suggerito ApplicableTransformationMapping è quello che ha generato un valore datetime valido.

Il plug-in viene richiamato con l'operatore evaluate . Per ottenere lo schema di tabella che usa lo schema dedotto per Creare e modificare Archiviazione di Azure tabelle esterne senza suggerimenti, usare il plug-in infer_storage_schema.

Autenticazione e autorizzazione

Nelle proprietà della richiesta si specificano gli stringa di connessione di archiviazione a cui accedere. Ogni stringa di connessione di archiviazione specifica il metodo di autorizzazione da usare per l'accesso all'archiviazione. A seconda del metodo di autorizzazione, potrebbe essere necessario concedere all'entità le autorizzazioni per l'archiviazione esterna per eseguire l'inferenza dello schema.

Nella tabella seguente sono elencati i metodi di autenticazione supportati e le autorizzazioni necessarie per tipo di archiviazione.

Metodo di autenticazione Archiviazione BLOB di Azure/Data Lake Storage Gen2 Data Lake Storage Gen1
Rappresentazione Lettore dei dati del BLOB di archiviazione Lettore
Token (SAS) di accesso condiviso Elenco e lettura Questo metodo di autenticazione non è supportato in Gen1.
Token di accesso di Microsoft Entra
Chiave di accesso dell'account di archiviazione Questo metodo di autenticazione non è supportato in Gen1.

Sintassi

evaluateinfer_storage_schema_with_suggestions( Opzioni )

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
Opzioni dynamic ✔️ Contenitore delle proprietà che specifica le proprietà della richiesta.

Proprietà supportate della richiesta

Nome Digita Obbligatorio Descrizione
StorageContainers dynamic ✔️ Matrice di stringa di connessione di archiviazione che rappresentano l'URI del prefisso per gli artefatti di dati archiviati.
DataFormat string ✔️ Uno dei formati di dati supportati per l'inserimento
FileExtension string Se specificato, la funzione analizza solo i file che terminano con questa estensione di file. La specifica dell'estensione può velocizzare il processo o eliminare i problemi di lettura dei dati.
FileNamePrefix string Se specificato, la funzione analizza solo i file a partire da questo prefisso. La specifica del prefisso può velocizzare il processo.
Modalità string Strategia di inferenza dello schema. Valore : any, last, all. La funzione deduce lo schema dei dati dal primo file trovato, dall'ultimo file scritto o da tutti i file rispettivamente. Il valore predefinito è last.
InferenceOptions dynamic Altre opzioni di inferenza. Opzioni valide: UseFirstRowAsHeader per i formati di file delimitati. Ad esempio, 'InferenceOptions': {'UseFirstRowAsHeader': true}

Valori restituiti

Il infer_storage_schema_with_suggestions plug-in restituisce una singola tabella dei risultati contenente una singola riga/colonna contenente una stringa JSON.

Nota

  • Le chiavi segrete dell'URI del contenitore di archiviazione devono avere le autorizzazioni per List oltre a Lettura.
  • La strategia di inferenza dello schema 'all' è un'operazione molto "costosa", in quanto implica la lettura da tutti gli artefatti trovati e l'unione del relativo schema.
  • Alcuni tipi restituiti potrebbero non essere quelli effettivi a causa di un'ipotesi errata del tipo (o, come risultato del processo di unione dello schema). Ecco perché è consigliabile esaminare attentamente il risultato prima di usarli.

Esempio

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
  ],
  'FileExtension': '.json',
  'FileNamePrefix': 'js-',
  'DataFormat': 'json'
});
evaluate infer_storage_schema_with_suggestions(options)

Dati di input di esempio

    {
        "source": "DataExplorer",
        "created_at": "2022-04-10 15:47:57",
        "author_id": 739144091473215488,
        "time_millisec":1547083647000
    }

Output

{
  "Columns": [
    {
      "OriginalColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "RecommendedColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "DateTimeFromUnixMilliseconds"
    }
  ]
}