Questa pagina descrive come esportare in blocco le risorse FHIR in BigQuery ai fini dell'esplorazione e dell'analisi. L'operazione di esportazione crea una tabella BigQuery per ogni tipo di risorsa FHIR nell'archivio FHIR.
Per migliorare le prestazioni delle query e ridurre i costi, valuta la possibilità di esportare le risorse FHIR in tabelle partizionate. Per istruzioni, consulta Esportare le risorse FHIR in tabelle partizionate.
Se esporti le risorse FHIR in base a una pianificazione, ti consigliamo di esportare i dati in modo incrementale. Per istruzioni, consulta Esportazioni incrementali.
Impostazione delle autorizzazioni BigQuery
Prima di esportare le risorse FHIR in BigQuery, devi concedere autorizzazioni aggiuntive all'account di servizio dell'agente di servizio Cloud Healthcare. Per ulteriori informazioni, consulta Autorizzazioni BigQuery per gli archivi FHIR.
Informazioni sul comportamento di esportazione
Il comportamento dell'operazione di esportazione dipende da quanto segue:
- Indica se la tabella di destinazione esiste.
- Se hai impostato il campo
force
. - Se specifichi un enum in
WriteDisposition
. Se specifichi un enum, non impostare il campoforce
.
Il comportamento in ogni caso è il seguente:
- La tabella di destinazione esiste e
force
è impostato sutrue
: l'operazione di esportazione sovrascrive la tabella esistente - La tabella di destinazione esiste e
force
è impostato sufalse
: si verifica un errore - La tabella di destinazione non esiste: l'operazione di esportazione crea una nuova tabella, indipendentemente dal fatto che tu specifichi o meno il campo
force
La tabella di destinazione esiste e hai impostato
WriteDisposition
suWRITE_TRUNCATE
oWRITE_APPEND
: l'operazione di esportazione riesce anziché restituire un errore
L'operazione genera una tabella BigQuery per ogni tipo di risorsa nell'archivio FHIR.
Esportare in blocco le risorse FHIR
Gli esempi riportati di seguito mostrano come esportare le risorse FHIR in una tabella BigQuery.
Quando specifichi la destinazione BigQuery, utilizza l'URI completamente qualificato:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Console
Per esportare le risorse FHIR in BigQuery utilizzando la console Google Cloud, completa i seguenti passaggi:
Nella console Google Cloud, vai alla pagina Set di dati.
Fai clic sul set di dati contenente lo store FHIR con i dati che stai esportando.
Nella stessa riga dell'archivio FHIR, apri l'elenco Azioni e seleziona Esporta.
Nella pagina Esporta risorse FHIR visualizzata, individua la sezione Seleziona una destinazione. Seleziona Tabella BigQuery.
Nella sezione Disposizione scrittura tabella di destinazione, seleziona una delle seguenti opzioni per determinare il comportamento dell'operazione di esportazione:
- Esporta i dati solo se le tabelle di destinazione sono vuote: è equivalente
a selezionare l'enum
WRITE_EMPTY
inWriteDisposition
. - Aggiungi i dati alle tabelle di destinazione: è equivalente alla selezione dell'enum
WRITE_APPEND
inWriteDisposition
. - Cancella tutti i dati esistenti nelle tabelle di destinazione prima di scrivere le risorse FHIR: è equivalente alla selezione dell'enum
WRITE_TRUNCATE
inWriteDisposition
.
- Esporta i dati solo se le tabelle di destinazione sono vuote: è equivalente
a selezionare l'enum
Nella sezione Configurazione dell'esportazione FHIR, fai clic su Sfoglia per selezionare il progetto e il set di dati BigQuery.
Nel menu a discesa Tipo di schema, seleziona lo schema di output per la tabella BigQuery. Sono disponibili i seguenti schemi:
- Analytics. Uno schema basato sul documento SQL on FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, gli schemi non vengono generati per i campi
Parameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
. - Analytics V2. Uno schema simile allo schema di Analytics, con il supporto aggiuntivo per quanto segue:
- Estensioni con più valori per lo stesso
url
- Risorse FHIR contenute
- Estensioni con più valori per lo stesso
- Analytics. Uno schema basato sul documento SQL on FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, gli schemi non vengono generati per i campi
Seleziona un livello di profondità nel cursore Profondità struttura ricorrente per impostare la profondità per tutte le strutture ricorsive nello schema di output. Per impostazione predefinita, il valore ricorsivo è 2.
Per ulteriori informazioni, vedi
recursiveStructureDepth
.Fai clic su Esporta per esportare le risorse FHIR in BigQuery.
- Per monitorare lo stato dell'operazione, fai clic sulla scheda Operazioni. Al termine dell'operazione, vengono visualizzate le seguenti indicazioni:
- La sezione Stato operazione a lunga esecuzione presenta un segno di spunta verde sotto la voce OK.
- Nella sezione Panoramica è presente un segno di spunta verde e un indicatore OK nella stessa riga dell'ID operazione.
gcloud
Per esportare le risorse FHIR in BigQuery, esegui il comando
gcloud healthcare fhir-stores export bq
.
Esporta le risorse FHIR.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati principale dell'archivio FHIR
- FHIR_STORE_ID: l'ID del datastore FHIR
- BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui esporti le risorse FHIR
- SCHEMA_TYPE: un valore per
SchemaType
. Utilizza uno dei seguenti valori:analytics
. Uno schema basato sul documento SQL on FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, gli schemi non vengono generati per i campiParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.analytics_v2
. Uno schema simile aanalytics
con il supporto aggiuntivo per quanto segue:- Estensioni con campi ripetuti
- Risorse FHIR contenute
analytics-v2
utilizza più spazio nella tabella di destinazione rispetto aanalytics
.
- WRITE_DISPOSITION: un valore per
WriteDisposition
. Utilizza uno dei seguenti valori:write-empty
. Esporta i dati solo se le tabelle BigQuery di destinazione sono vuote.write-truncate
. Cancella tutti i dati esistenti nelle tabelle BigQuery prima di scrivere le risorse FHIR.write-append
. Aggiungi i dati alle tabelle BigQuery di destinazione.
- FHIR_RESOURCE_TYPE: un campo facoltativo. Specifica uno o più tipi di risorse FHIR delimitati da virgole per esportare solo le risorse FHIR di questi tipi.
- SINCE_TIMESTAMP: un campo facoltativo. Specifica un valore nel formato
YYYY-MM-DDThh:mm:ss.sss+zz:zz
per esportare solo le risorse FHIR aggiornate dopo un'ora specifica. Specifica l'ora fino al secondo e includi un fuso orario. Ad esempio,2015-02-07T13:28:17.239+02:00
e2017-01-01T00:00:00Z
sono orari validi.
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud healthcare fhir-stores export bq FHIR_STORE_ID \ --location=LOCATION \ --dataset=DATASET_ID \ --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID \ --schema-type=SCHEMA_TYPE \ --write-disposition=WRITE_DISPOSITION \ --resource-type=FHIR_RESOURCE_TYPE \ --since=SINCE_TIMESTAMP
Windows (PowerShell)
gcloud healthcare fhir-stores export bq FHIR_STORE_ID ` --location=LOCATION ` --dataset=DATASET_ID ` --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ` --schema-type=SCHEMA_TYPE ` --write-disposition=WRITE_DISPOSITION ` --resource-type=FHIR_RESOURCE_TYPE ` --since=SINCE_TIMESTAMP
Windows (cmd.exe)
gcloud healthcare fhir-stores export bq FHIR_STORE_ID ^ --location=LOCATION ^ --dataset=DATASET_ID ^ --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ^ --schema-type=SCHEMA_TYPE ^ --write-disposition=WRITE_DISPOSITION ^ --resource-type=FHIR_RESOURCE_TYPE ^ --since=SINCE_TIMESTAMP
name
al termine dell'esportazione. Prendi nota del valore diOPERATION_ID
. Questo valore ti servirà nel passaggio successivo.Risposta
Request issued for: [FHIR_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏ name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Per visualizzare ulteriori dettagli sull'operazione, esegui
gcloud healthcare operations describe
e fornisci il valore OPERATION_ID della risposta.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID set di dati
- LOCATION: la posizione del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud healthcare operations describe OPERATION_ID \ --project=PROJECT_ID \ --dataset=DATASET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud healthcare operations describe OPERATION_ID ` --project=PROJECT_ID ` --dataset=DATASET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud healthcare operations describe OPERATION_ID ^ --project=PROJECT_ID ^ --dataset=DATASET_ID ^ --location=LOCATION
Dovresti ricevere una risposta simile alla seguente:
Risposta
done: true // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. error: ERROR code: ERROR_CODE message: DESCRIPTION metadata: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata' apiMethodName: 'google.cloud.healthcare.v1.fhir.FhirStoreService.ExportResources_bq' counter: success: 'SUCCESS_COUNT' // If there were any failures, they display in the `failure` field. failure: 'FAILURE_COUNT' createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ' logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID // The `response` field only displays if there were no errors. response: '@type': 'type.googleapis.com/google.cloud.healthcare.v1.fhir.ExportResourcesResponse'
REST
Per esportare le risorse FHIR in BigQuery, utilizza il metodo
projects.locations.datasets.fhirStores.export
.
Esporta le risorse FHIR:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati principale dell'archivio FHIR
- FHIR_STORE_ID: l'ID del datastore FHIR
- BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui esporti le risorse FHIR
- SCHEMA_TYPE: un valore per
SchemaType
. Utilizza uno dei seguenti valori:ANALYTICS
. Uno schema basato sul documento SQL on FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, gli schemi non vengono generati per i campiParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.ANALYTICS_V2
. Uno schema simile aANALYTICS
con il supporto aggiuntivo per quanto segue:- Estensioni con più valori per lo stesso
url
- Risorse FHIR contenute
.ANALYTICS_V2
utilizza più spazio nella tabella di destinazione rispetto aANALYTICS
- Estensioni con più valori per lo stesso
- WRITE_DISPOSITION: un valore per
WriteDisposition
. Utilizza uno dei seguenti valori:WRITE_EMPTY
. Esporta i dati solo se le tabelle BigQuery di destinazione sono vuote.WRITE_TRUNCATE
. Cancella tutti i dati esistenti nelle tabelle BigQuery prima di scrivere le risorse FHIR.WRITE_APPEND
. Aggiungi i dati alle tabelle BigQuery di destinazione.
- FHIR_RESOURCE_TYPE: un campo facoltativo. Specifica uno o più tipi di risorse FHIR delimitati da virgole per esportare solo le risorse FHIR di questi tipi.
- SINCE_TIMESTAMP: un campo facoltativo. Specifica un valore nel formato
YYYY-MM-DDThh:mm:ss.sss+zz:zz
per esportare solo le risorse FHIR aggiornate dopo un'ora specifica. Specifica l'ora fino al secondo e includi un fuso orario. Ad esempio,2015-02-07T13:28:17.239+02:00
e2017-01-01T00:00:00Z
sono orari validi.
Corpo JSON della richiesta:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand ContentExplorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
OPERATION_ID
. Questo valore ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID set di dati
- LOCATION: la posizione del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorer API
Apri la pagina di riferimento del metodo. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.
Esportare risorse FHIR in tabelle partizionate
Per esportare le risorse FHIR nelle tabelle partizionate di BigQuery, imposta l'enum
TimePartitioning
nel campo
lastUpdatedPartitionConfig
nel tuo archivio FHIR.
Le tabelle partizionate funzionano come le tabelle partizionate in base alle unità di tempo di BigQuery.
Le tabelle partizionate hanno una colonna aggiuntiva denominata lastUpdated
, che è un duplicato della colonna meta.lastUpdated
generata dal campo meta.lastUpdated
in una risorsa FHIR. BigQuery utilizza la colonna lastUpdated
per partizionare le tabelle per ora, giorno, mese o anno.
Consulta Selezionare la partizione giornaliera, oraria, mensile o annuale per consigli su come selezionare la granularità di una partizione.
Non puoi convertire le tabelle BigQuery esistenti non partizionate in tabelle partizionate. Se esporti le modifiche alla risorsa Patient in una tabella Patients
non partizionata e in seguito crei un nuovo archivio FHIR con il partizionamento delle tabelle che esporta nello stesso set di dati BigQuery, l'API Cloud Healthcare esporta comunque i dati nella tabella Patients
non partizionata. Per iniziare a utilizzare una tabella partizionata,
elimina la tabella Patients
esistente o utilizza un altro set di dati BigQuery.
Se aggiungi il partizionamento a una configurazione del repository FHIR esistente, puoi comunque eseguire l'esportazione in tabelle non partizionate esistenti. Tuttavia, il partizionamento verrà applicato solo alle nuove tabelle.
Gli esempi riportati di seguito mostrano come esportare le risorse FHIR nelle tabelle partizionate di BigQuery.
Console
La console Google Cloud e l'interfaccia alla gcloud CLI non supportano questa azione. Utilizza invece curl
, PowerShell o la tua lingua preferita.
gcloud
La console Google Cloud e l'interfaccia alla gcloud CLI non supportano questa azione. Utilizza invece curl
, PowerShell o la tua lingua preferita.
REST
Per esportare le risorse FHIR nelle tabelle partizionate BigQuery, utilizza il metodo
projects.locations.datasets.fhirStores.export
.
Esporta le risorse FHIR:
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati principale dell'archivio FHIR
- FHIR_STORE_ID: l'ID del datastore FHIR
- BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui esporti le risorse FHIR
- SCHEMA_TYPE: un valore per
SchemaType
. Utilizza uno dei seguenti valori:ANALYTICS
. Uno schema basato sul documento SQL on FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, gli schemi non vengono generati per i campiParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.ANALYTICS_V2
. Uno schema simile aANALYTICS
con il supporto aggiuntivo per quanto segue:- Estensioni con più valori per lo stesso
url
- Risorse FHIR contenute
.ANALYTICS_V2
utilizza più spazio nella tabella di destinazione rispetto aANALYTICS
- Estensioni con più valori per lo stesso
- TIME_PARTITION_TYPE: la granularità a cui partizionare le risorse FHIR esportate. Utilizza uno dei seguenti valori:
HOUR
: partiziona i dati per oraDAY
: partiziona i dati per giornoMONTH
: partiziona i dati per meseYEAR
: partiziona i dati per anno
- WRITE_DISPOSITION: un valore per
WriteDisposition
. Utilizza uno dei seguenti valori:WRITE_EMPTY
: esporta i dati solo se la tabella BigQuery è vuota.WRITE_TRUNCATE
: cancella tutti i dati esistenti nella tabella BigQuery prima di scrivere le istanze DICOM.WRITE_APPEND
: accoda i dati alla tabella BigQuery.
Corpo JSON della richiesta:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand ContentExplorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID set di dati
- LOCATION: la posizione del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorer API
Apri la pagina di riferimento del metodo. Il riquadro Esplora API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.
Eseguire query su una tabella partizionata
Per ridurre i costi delle query quando esegui query sulle tabelle partizionate, utilizza la clausola
WHERE
per filtrare in base alle unità di tempo.
Ad esempio, supponiamo di impostare l'enum
PartitionType
su DAY
.
Per eseguire una query su una tabella Patients
per le risorse paziente aggiornate in una data specifica, esegui la seguente query:
SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients` WHERE DATE(lastUpdated) = 'YYYY-MM-DD'
Esportazioni incrementali
Puoi specificare un timestamp per esportare solo le risorse FHIR aggiunte al tuo datastore FHIR dopo un'esportazione riuscita precedente. In questo modo, vengono migliorate le prestazioni ed evitato il costo della re-esportazione dell'intero store FHIR, garantendo al contempo che i dati esportati siano sempre aggiornati.
Quando chiami fhirStores.export
,
specifica il timestamp nel campo _since
.
Eseguire query e analizzare i dati FHIR in BigQuery
Dopo aver esportato le risorse FHIR in BigQuery, consulta la soluzione Analisi dei dati FHIR in BigQuery per informazioni su come eseguire query e analizzare i dati esportati. La soluzione utilizza il set di dati pubblico Synthea™ Generated Synthetic Data in FHIR, che ospita oltre 1 milione di record dei pazienti sintetici generati nei formati Synthea™ e FHIR.
Risolvere i problemi relativi alle richieste di esportazione FHIR
Se si verificano errori durante una richiesta di esportazione FHIR, questi vengono registrati in Cloud Logging. Per ulteriori informazioni, consulta Visualizzazione dei log degli errori in Cloud Logging.
Se l'intera operazione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.
Impossibile convertire la colonna da NULLABLE a REPEATED
Questo errore è causato da un'estensione ripetuta. Per risolvere questo errore,
utilizza il tipo di schema ANALYTICS_V2
. Se utilizzi ANALYTICS_V2
, potresti riscontrare un
conflitto tra due estensioni o tra un'estensione e un altro
campo.
I nomi delle colonne vengono generati dal testo dopo l'ultimo carattere /
negli URL delle estensioni. Se un URL dell'estensione termina con un valore come /resource_field name
, può verificarsi un conflitto. \
Per evitare che questo errore si ripresenti, non utilizzare le estensioni se i nomi dei campi sono uguali a quelli dei campi della risorsa che stai compilando.
Passaggi successivi
- Per scoprire di più sulla governance e sulla sicurezza dei dati in BigQuery, consulta Panoramica della governance e della sicurezza dei dati.