FetchXmlQuery Classe

Oggetto query FetchXML inert. Non viene effettuata alcuna richiesta HTTP fino a execute quando non viene chiamato o execute_pages .

Ottenuto tramite client.query.fetchxml(xml).

Costruttore

FetchXmlQuery(xml: str, entity_name: str, client: DataverseClient)

Parametri

Nome Descrizione
xml
Necessario

Stringa FetchXML con formato corretto.

entity_name
Necessario

Nome dello schema di entità dall'elemento <entity> .

client
Necessario

Metodi

execute

Eseguire la query FetchXML e restituire tutti i risultati come .QueryResult

Blocco: recupera tutte le pagine in anticipo e contiene ogni record in memoria prima di restituire. Semplice per set di risultati da piccolo a medio; utilizzare execute_pages quando il set di risultati può essere di grandi dimensioni o si desidera elaborare i record non appena arrivano.

Esempio:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute_pages

Lazily restituisce una QueryResult per pagina HTTP.

Streaming: ogni iterazione genera una richiesta HTTP e restituisce una pagina. Preferire quando execute :

  • Il set di risultati può essere di grandi dimensioni e non si vogliono tutti i record in memoria contemporaneamente.

  • Si vuole uscire in anticipo: interrompere l'iterazione dopo aver trovato ciò di cui si ha bisogno e i round trip HTTP rimanenti vengono ignorati automaticamente.

  • Sono necessari report sullo stato di avanzamento per pagina o scritture downstream in batch.

Un colpo : non eseguire l'iterazione più di una volta.

Esempio:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())

execute

Eseguire la query FetchXML e restituire tutti i risultati come .QueryResult

Blocco: recupera tutte le pagine in anticipo e contiene ogni record in memoria prima di restituire. Semplice per set di risultati da piccolo a medio; utilizzare execute_pages quando il set di risultati può essere di grandi dimensioni o si desidera elaborare i record non appena arrivano.

Esempio:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute() -> QueryResult

Valori restituiti

Tipo Descrizione

Tutti i record corrispondenti in tutte le pagine.

execute_pages

Lazily restituisce una QueryResult per pagina HTTP.

Streaming: ogni iterazione genera una richiesta HTTP e restituisce una pagina. Preferire quando execute :

  • Il set di risultati può essere di grandi dimensioni e non si vogliono tutti i record in memoria contemporaneamente.

  • Si vuole uscire in anticipo: interrompere l'iterazione dopo aver trovato ciò di cui si ha bisogno e i round trip HTTP rimanenti vengono ignorati automaticamente.

  • Sono necessari report sullo stato di avanzamento per pagina o scritture downstream in batch.

Un colpo : non eseguire l'iterazione più di una volta.

Esempio:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]

Valori restituiti

Tipo Descrizione

Iteratore di oggetti per pagina QueryResult .