Auf dieser Seite wird beschrieben, wie Sie FHIR-Ressourcen zur Untersuchung und Analyse im Batchverfahren nach BigQuery exportieren. Beim Exportvorgang wird für jeden FHIR-Ressourcentyp in Ihrem FHIR-Speicher eine BigQuery-Tabelle erstellt.
Um die Abfrageleistung zu verbessern und die Kosten zu senken, sollten Sie FHIR-Ressourcen in partitionierte Tabellen exportieren. Eine Anleitung dazu finden Sie unter FHIR-Ressourcen in partitionierte Tabellen exportieren.
Wenn Sie FHIR-Ressourcen regelmäßig exportieren, sollten Sie Ihre Daten inkrementell exportieren. Eine Anleitung finden Sie unter Inkrementelle Exporte.
BigQuery-Berechtigungen festlegen
Bevor Sie FHIR-Ressourcen nach BigQuery exportieren, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter BigQuery-Berechtigungen für FHIR-Speicher.
Exportverhalten
Das Verhalten des Exportvorgangs hängt von den folgenden Faktoren ab:
- Gibt an, ob die Zieltabelle vorhanden ist.
- Ob Sie das Feld
force
festgelegt haben. - Ob Sie eine Aufzählung in
WriteDisposition
angeben. Wenn Sie eine Aufzählung angeben, darf das Feldforce
nicht festgelegt werden.
Das Verhalten in den einzelnen Fällen ist so:
- Die Zieltabelle ist vorhanden und
force
ist auftrue
gesetzt: Der Exportvorgang überschreibt die vorhandene Tabelle. - Die Zieltabelle ist vorhanden und
force
ist auffalse
gesetzt: Es tritt ein Fehler auf. - Die Zieltabelle ist nicht vorhanden: Beim Exportvorgang wird eine neue Tabelle erstellt, unabhängig davon, ob Sie das Feld
force
angeben. Die Zieltabelle ist vorhanden und Sie haben
WriteDisposition
aufWRITE_TRUNCATE
oderWRITE_APPEND
gesetzt: Der Exportvorgang wird erfolgreich abgeschlossen, anstatt einen Fehler zurückzugeben.
Der Vorgang gibt für jeden Ressourcentyp im FHIR-Speicher eine BigQuery-Tabelle aus.
FHIR-Ressourcen im Batch exportieren
In den folgenden Beispielen wird gezeigt, wie Sie FHIR-Ressourcen in eine BigQuery-Tabelle exportieren.
Verwenden Sie beim Angeben des BigQuery-Ziels den vollständig qualifizierten URI:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Console
Führen Sie die folgenden Schritte aus, um FHIR-Ressourcen mit derGoogle Cloud -Konsole nach BigQuery zu exportieren:
Rufen Sie in der Google Cloud Console die Seite Datasets auf.
Klicken Sie auf das Dataset, das den FHIR-Speicher mit den Daten enthält, die Sie exportieren möchten.
Öffnen Sie in derselben Zeile wie der FHIR-Speicher die Liste Aktionen und wählen Sie Exportieren aus.
Suchen Sie auf der Seite FHIR-Ressourcen exportieren den Abschnitt Ziel auswählen. Wählen Sie BigQuery-Tabelle aus.
Wählen Sie im Abschnitt Zieltabellen-Schreibanordnung eine der folgenden Optionen aus, um das Verhalten des Exportvorgangs festzulegen:
- Daten nur exportieren, wenn die Zieltabellen leer sind: Dies entspricht der Auswahl der
WRITE_EMPTY
-Aufzählung inWriteDisposition
. - Daten an die Zieltabellen anhängen: Dies entspricht der Auswahl des
WRITE_APPEND
-Enumerators inWriteDisposition
. - Alle vorhandenen Daten in Zieltabellen löschen, bevor die FHIR-Ressourcen geschrieben werden: Dies entspricht der Auswahl des Enums
WRITE_TRUNCATE
inWriteDisposition
.
- Daten nur exportieren, wenn die Zieltabellen leer sind: Dies entspricht der Auswahl der
Klicken Sie im Bereich FHIR-Exportkonfiguration auf Durchsuchen, um das BigQuery-Projekt und das Dataset auszuwählen.
Wählen Sie im Drop-down-Menü Schematyp das Ausgabeschema für die BigQuery-Tabelle aus. Folgende Schemas sind verfügbar:
- Analytics Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da in BigQuery nur 10.000 Spalten pro Tabelle zulässig sind, werden keine Schemas für die Felder
Parameters.parameter.resource
,Bundle.entry.resource
undBundle.entry.response.outcome
generiert. - Analytics V2 Ein Schema, das dem Analytics-Schema ähnelt, mit zusätzlicher Unterstützung für Folgendes:
- Erweiterungen mit mehreren Werten für dieselbe
url
- Enthaltene FHIR-Ressourcen
- Erweiterungen mit mehreren Werten für dieselbe
- Analytics Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da in BigQuery nur 10.000 Spalten pro Tabelle zulässig sind, werden keine Schemas für die Felder
Wählen Sie im Schieberegler Rekursive Strukturtiefe eine Tiefe aus, um die Tiefe für alle rekursiven Strukturen im Ausgabeschema festzulegen. Standardmäßig ist der rekursive Wert 2.
Weitere Informationen finden Sie unter
recursiveStructureDepth
.Klicken Sie auf Exportieren, um FHIR-Ressourcen nach BigQuery zu exportieren.
- Klicken Sie auf den Tab Vorgänge, um den Status des Vorgangs zu verfolgen. Wenn der Vorgang abgeschlossen ist, werden folgende Hinweise angezeigt:
- Im Abschnitt Status: Lang andauernder Vorgang befindet sich unter der Überschrift OK ein grünes Häkchen.
- Der Abschnitt Übersicht hat ein grünes Häkchen und einen OK-Indikator in der Zeile, in der sich auch die Vorgangs-ID befindet.
gcloud
Führen Sie den Befehl gcloud healthcare fhir-stores export bq
aus, um FHIR-Ressourcen nach BigQuery zu exportieren.
Exportieren Sie die FHIR-Ressourcen.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
- SCHEMA_TYPE: ein Wert für
SchemaType
. Verwenden Sie einen der folgenden Werte:analytics
: Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da in BigQuery nur 10.000 Spalten pro Tabelle zulässig sind, werden keine Schemas für die FelderParameters.parameter.resource
,Bundle.entry.resource
undBundle.entry.response.outcome
generiert.analytics_v2
: Ein Schema ähnlich wieanalytics
mit zusätzlicher Unterstützung für Folgendes:- Erweiterungen mit wiederkehrenden Feldern
- Enthaltene FHIR-Ressourcen
analytics-v2
belegt in der Zieltabelle mehr Speicherplatz alsanalytics
.
- WRITE_DISPOSITION: ein Wert für
WriteDisposition
. Verwenden Sie einen der folgenden Werte:write-empty
: Daten werden nur exportiert, wenn die Ziel-BigQuery-Tabellen leer sind.write-truncate
: Alle vorhandenen Daten in den BigQuery-Tabellen löschen, bevor die FHIR-Ressourcen geschrieben werden.write-append
. Daten an die BigQuery-Zieltabelle anhängen.
- FHIR_RESOURCE_TYPE: Ein optionales Feld. Geben Sie einen oder mehrere durch Kommas getrennte FHIR-Ressourcentypen an, um nur FHIR-Ressourcen dieser Typen zu exportieren.
- SINCE_TIMESTAMP: Ein optionales Feld. Geben Sie einen Wert im Format
YYYY-MM-DDThh:mm:ss.sss+zz:zz
an, um nur FHIR-Ressourcen zu exportieren, die nach einem bestimmten Zeitpunkt aktualisiert wurden. Geben Sie die Uhrzeit auf die Sekunde genau an und geben Sie eine Zeitzone an. Beispiel:2015-02-07T13:28:17.239+02:00
und2017-01-01T00:00:00Z
sind gültige Zeiten.
Führen Sie folgenden Befehl aus:
Linux, macOS oder 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
aus, sobald der Export abgeschlossen ist. Notieren Sie sich den Wert vonOPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.Antwort
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
Führen Sie den Befehl
gcloud healthcare operations describe
aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen.Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- DATASET_ID ist die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde
Führen Sie folgenden Befehl aus:
Linux, macOS oder 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
Sie sollten eine Antwort ähnlich der folgenden erhalten:
Antwort
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
Verwenden Sie die Methode projects.locations.datasets.fhirStores.export
, um FHIR-Ressourcen nach BigQuery zu exportieren.
FHIR-Ressourcen exportieren:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
- SCHEMA_TYPE: ein Wert für
SchemaType
. Verwenden Sie einen der folgenden Werte:ANALYTICS
: Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da in BigQuery nur 10.000 Spalten pro Tabelle zulässig sind, werden keine Schemas für die FelderParameters.parameter.resource
,Bundle.entry.resource
undBundle.entry.response.outcome
generiert.ANALYTICS_V2
: Ein Schema ähnlich wieANALYTICS
mit zusätzlicher Unterstützung für Folgendes:- Erweiterungen mit mehreren Werten für dieselbe
url
- Enthaltene FHIR-Ressourcen
.ANALYTICS_V2
belegt mehr Speicherplatz in der Zieltabelle alsANALYTICS
- Erweiterungen mit mehreren Werten für dieselbe
- WRITE_DISPOSITION: ein Wert für
WriteDisposition
. Verwenden Sie einen der folgenden Werte:WRITE_EMPTY
: Daten werden nur exportiert, wenn die Ziel-BigQuery-Tabellen leer sind.WRITE_TRUNCATE
: Alle vorhandenen Daten in den BigQuery-Tabellen löschen, bevor die FHIR-Ressourcen geschrieben werden.WRITE_APPEND
. Daten an die BigQuery-Zieltabelle anhängen.
- FHIR_RESOURCE_TYPE: Ein optionales Feld. Geben Sie einen oder mehrere durch Kommas getrennte FHIR-Ressourcentypen an, um nur FHIR-Ressourcen dieser Typen zu exportieren.
- SINCE_TIMESTAMP: Ein optionales Feld. Geben Sie einen Wert im Format
YYYY-MM-DDThh:mm:ss.sss+zz:zz
an, um nur FHIR-Ressourcen zu exportieren, die nach einem bestimmten Zeitpunkt aktualisiert wurden. Geben Sie die Uhrzeit auf die Sekunde genau an und geben Sie eine Zeitzone an. Beispiel:2015-02-07T13:28:17.239+02:00
und2017-01-01T00:00:00Z
sind gültige Zeiten.
JSON-Text der Anfrage:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben: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
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:@' { "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
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$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 ContentAPIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
OPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- DATASET_ID ist die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
"done": true
enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.
FHIR-Ressourcen in partitionierte Tabellen exportieren
Wenn Sie FHIR-Ressourcen in partitionierte BigQuery-Tabellen exportieren möchten, legen Sie den Enum-Wert TimePartitioning
im Feld lastUpdatedPartitionConfig
in Ihrem FHIR-Speicher fest.
Die partitionierten Tabellen funktionieren wie nach Zeiteinheit partitionierte Tabellen in BigQuery.
Partitionierte Tabellen haben eine zusätzliche Spalte mit dem Namen lastUpdated
. Diese ist ein Duplikat der Spalte meta.lastUpdated
, die aus dem Feld meta.lastUpdated
in einer FHIR-Ressource generiert wird. In BigQuery wird die Spalte lastUpdated
verwendet, um Tabellen nach Stunde, Tag, Monat oder Jahr zu partitionieren.
Unter Tages-, Stunden-, Monats- oder Jahrespartitionierung auswählen finden Sie Empfehlungen zur Auswahl der Granularität einer Partition.
Sie können vorhandene, nicht partitionierte BigQuery-Tabellen nicht in partitionierte Tabellen konvertieren. Wenn Sie Änderungen an Patientenressourcen in eine nicht partitionierte Patients
-Tabelle exportieren und später einen neuen FHIR-Speicher mit Tabellenpartitionierung erstellen, der in dasselbe BigQuery-Dataset exportiert wird, exportiert die Cloud Healthcare API weiterhin Daten in die nicht partitionierte Patients
-Tabelle. Wenn Sie eine partitionierte Tabelle verwenden möchten, löschen Sie die vorhandene Patients
-Tabelle oder verwenden Sie ein anderes BigQuery-Dataset.
Wenn Sie einer vorhandenen FHIR-Speicherkonfiguration Partitionierung hinzufügen, können Sie weiterhin in vorhandene nicht partitionierte Tabellen exportieren. Die Partitionierung wird jedoch nur für neue Tabellen wirksam.
In den folgenden Beispielen wird gezeigt, wie Sie FHIR-Ressourcen in partitionierte BigQuery-Tabellen exportieren.
Console
Die Google Cloud Console und die gcloud CLI unterstützen diese Aktion nicht. Verwenden Sie stattdessen curl
, PowerShell oder Ihre bevorzugte Sprache.
gcloud
Die Google Cloud Console und die gcloud CLI unterstützen diese Aktion nicht. Verwenden Sie stattdessen curl
, PowerShell oder Ihre bevorzugte Sprache.
REST
Verwenden Sie die Methode projects.locations.datasets.fhirStores.export
, um FHIR-Ressourcen in partitionierte BigQuery-Tabellen zu exportieren.
FHIR-Ressourcen exportieren:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
- SCHEMA_TYPE: ein Wert für
SchemaType
. Verwenden Sie einen der folgenden Werte:ANALYTICS
: Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da in BigQuery nur 10.000 Spalten pro Tabelle zulässig sind, werden keine Schemas für die FelderParameters.parameter.resource
,Bundle.entry.resource
undBundle.entry.response.outcome
generiert.ANALYTICS_V2
: Ein Schema ähnlich wieANALYTICS
mit zusätzlicher Unterstützung für Folgendes:- Erweiterungen mit mehreren Werten für dieselbe
url
- Enthaltene FHIR-Ressourcen
.ANALYTICS_V2
belegt mehr Speicherplatz in der Zieltabelle alsANALYTICS
- Erweiterungen mit mehreren Werten für dieselbe
- TIME_PARTITION_TYPE: die Granularität, mit der exportierte FHIR-Ressourcen partitioniert werden sollen. Verwenden Sie einen der folgenden Werte:
HOUR
: Daten nach Stunde partitionierenDAY
: Daten nach Tag partitionierenMONTH
: Daten nach Monat partitionierenYEAR
: Daten nach Jahr partitionieren
- WRITE_DISPOSITION: ein Wert für
WriteDisposition
. Verwenden Sie einen der folgenden Werte:WRITE_EMPTY
: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.WRITE_TRUNCATE
: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.WRITE_APPEND
: Daten an die BigQuery-Tabelle anhängen.
JSON-Text der Anfrage:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben: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
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:@' { "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
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$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 ContentAPIs Explorer
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Mit der Methode
projects.locations.datasets.operations.get
können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID Ihres Google Cloud Projekts
- DATASET_ID ist die Dataset-ID
- LOCATION: der Standort des Datasets
- OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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 ContentAPIs Explorer
Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.
"done": true
enthält, ist der Vorgang mit langer Ausführungszeit abgeschlossen.
Partitionierte Tabelle abfragen
Um die Abfragekosten beim Abfragen partitionierter Tabellen zu senken, verwenden Sie die Klausel WHERE
, um nach Zeiteinheiten zu filtern.
Angenommen, Sie legen den Enum-Wert PartitionType
auf DAY
fest.
Wenn Sie eine Patients
-Tabelle nach Patientenressourcen abfragen möchten, die an einem bestimmten Datum aktualisiert wurden, führen Sie die folgende Abfrage aus:
SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients` WHERE DATE(lastUpdated) = 'YYYY-MM-DD'
Inkrementelle Exporte
Sie können einen Zeitstempel angeben, um nur FHIR-Ressourcen zu exportieren, die Ihrem FHIR-Speicher seit einem vorherigen erfolgreichen Export hinzugefügt wurden. Das verbessert die Leistung und vermeidet die Kosten für den erneuten Export des gesamten FHIR-Speichers. Außerdem sind Ihre exportierten Daten so immer auf dem neuesten Stand.
Geben Sie beim Aufrufen von fhirStores.export
den Zeitstempel im Feld _since
an.
FHIR-Daten in BigQuery abfragen und analysieren
Nach dem Export der FHIR-Ressourcen nach BigQuery finden Sie unter FHIR-Daten in BigQuery analysieren Informationen zum Abfragen und Analysieren der exportierten Daten. Die Lösung verwendet das öffentliche Dataset Synthea™-generierte synthetische Daten in FHIR, in dem über 1 Million synthetische Patienteneinträge im Synthea™- und FHIR-Format generiert werden.
Fehlerbehebung bei FHIR-Exportanfragen
Wenn während einer FHIR-Exportanfrage Fehler auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.
Wenn der gesamte Vorgang einen Fehler zurückgibt, finden Sie weitere Informationen unter Fehlerbehebung bei Vorgängen mit langer Ausführungszeit.
Spalte kann nicht von NULLABLE in REPEATED konvertiert werden
Dieser Fehler wird durch eine wiederholte Verlängerung verursacht. Verwenden Sie den Schematyp ANALYTICS_V2
, um diesen Fehler zu beheben. Wenn Sie ANALYTICS_V2
verwenden, liegt möglicherweise ein Konflikt zwischen zwei Erweiterungen oder zwischen einer Erweiterung und einem anderen Feld vor.
Spaltennamen werden aus dem Text nach dem letzten /
-Zeichen in Erweiterungs-URLs generiert. Wenn eine Erweiterungs-URL mit einem Wert wie /resource_field name
endet, kann es zu einem Konflikt kommen. \
Damit dieser Fehler nicht noch einmal auftritt, verwenden Sie keine Erweiterungen, deren Feldnamen mit den Namen der Ressourcenfelder übereinstimmen, die Sie ausfüllen.
Nächste Schritte
- Weitere Informationen zu Data Governance und Sicherheit in BigQuery finden Sie unter Übersicht: Datensicherheit und Governance.