Cette page explique comment exporter des ressources FHIR de manière groupée vers BigQuery à des fins d'exploration et d'analyse. L'opération d'exportation crée une table BigQuery pour chaque type de ressource FHIR dans votre entrepôt FHIR.
Pour améliorer les performances des requêtes et réduire les coûts, envisagez d'exporter des ressources FHIR vers des tables partitionnées. Pour obtenir des instructions, consultez la section Exporter des ressources FHIR vers des tables partitionnées.
Si vous exportez des ressources FHIR de manière planifiée, envisagez d'exporter vos données de manière incrémentielle. Pour savoir comment procéder, consultez Exporter des données de manière incrémentielle.
Définir des autorisations BigQuery
Avant d'exporter des ressources FHIR vers BigQuery, vous devez accorder des autorisations supplémentaires au compte de service Agent de service Cloud Healthcare. Pour en savoir plus, consultez la section Autorisations BigQuery pour les datastores FHIR.
Comprendre le comportement d'exportation
Le comportement de l'opération d'exportation dépend des éléments suivants:
- Indique si la table de destination existe.
- Si vous avez défini le champ
force
. - Indique si vous spécifiez une énumération dans
WriteDisposition
. Si vous spécifiez une énumération, ne définissez pas le champforce
.
Le comportement associé à chacun de ces cas est le suivant:
- La table de destination existe et
force
est défini surtrue
: l'opération d'exportation écrase la table existante - La table de destination existe et
force
est défini surfalse
: une erreur se produit - La table de destination n'existe pas: l'opération d'exportation crée une table, que vous spécifiiez ou non le champ
force
. La table de destination existe et vous définissez
WriteDisposition
surWRITE_TRUNCATE
ouWRITE_APPEND
: l'opération d'exportation aboutit au lieu de renvoyer une erreur.
L'opération génère une table BigQuery pour chaque type de ressource dans le datastore FHIR.
Exporter des ressources FHIR par lot
Les exemples suivants montrent comment exporter des ressources FHIR vers une table BigQuery.
Lorsque vous spécifiez la destination BigQuery, utilisez l'URI complet:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Console
Pour exporter des ressources FHIR vers BigQuery à l'aide de la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Ensembles de données.
Cliquez sur l'ensemble de données contenant le magasin FHIR dont vous exportez les données.
Sur la même ligne que le magasin FHIR, ouvrez la liste Actions et sélectionnez Exporter.
Sur la page Exporter des ressources FHIR qui s'affiche, recherchez la section Sélectionner une destination. Sélectionnez Table BigQuery.
Dans la section Disposition d'écriture de la table de destination, sélectionnez l'une des options suivantes pour déterminer le comportement de l'opération d'exportation:
- N'exporter les données que si les tables de destination sont vides: cela équivaut à sélectionner l'énumération
WRITE_EMPTY
dansWriteDisposition
. - Ajouter des données aux tables de destination: cela équivaut à sélectionner l'énumération
WRITE_APPEND
dansWriteDisposition
. - Effacer toutes les données existantes des tables de destination avant d'écrire les ressources FHIR: cela équivaut à sélectionner l'énumération
WRITE_TRUNCATE
dansWriteDisposition
.
- N'exporter les données que si les tables de destination sont vides: cela équivaut à sélectionner l'énumération
Dans la section Configuration d'exportation FHIR, cliquez sur Parcourir pour sélectionner le projet et l'ensemble de données BigQuery.
Dans le menu déroulant Type de schéma, sélectionnez le schéma de sortie pour la table BigQuery. Les schémas suivants sont disponibles:
- Analytics. Un schéma basé sur le document SQL sur FHIR. BigQuery n'autorisant que 10 000 colonnes par table, les schémas ne sont pas générés pour les champs
Parameters.parameter.resource
,Bundle.entry.resource
etBundle.entry.response.outcome
. - Analytics V2 Un schéma semblable au schéma Analytics, avec les éléments suivants:
- Extensions avec plusieurs valeurs pour le même
url
- Ressources FHIR contenues
- Extensions avec plusieurs valeurs pour le même
- Analytics. Un schéma basé sur le document SQL sur FHIR. BigQuery n'autorisant que 10 000 colonnes par table, les schémas ne sont pas générés pour les champs
Sélectionnez un niveau de profondeur dans le curseur Profondeur de la structure récursive pour définir la profondeur de toutes les structures récursives dans le schéma de sortie. Par défaut, la valeur récursive est 2.
Pour en savoir plus, consultez la page
recursiveStructureDepth
.Cliquez sur Exporter pour exporter les ressources FHIR vers BigQuery.
- Pour suivre l'état de l'opération, cliquez sur l'onglet Opérations. Une fois l'opération terminée, les indications suivantes s'affichent :
- La section État de l'opération de longue durée est représentée par une coche verte sous l'en-tête OK.
- La section Présentation comporte une coche verte et un indicateur OK sur la même ligne que l'ID de l'opération.
gcloud
Pour exporter des ressources FHIR vers BigQuery, exécutez la commande gcloud healthcare fhir-stores export bq
.
Exportez les ressources FHIR.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant vers lequel vous exportez les ressources FHIR
- SCHEMA_TYPE: valeur pour
SchemaType
. Utilisez l'une des valeurs suivantes :analytics
: schéma basé sur le document SQL sur FHIR. BigQuery n'autorisant que 10 000 colonnes par table, les schémas ne sont pas générés pour les champsParameters.parameter.resource
,Bundle.entry.resource
etBundle.entry.response.outcome
.analytics_v2
: schéma semblable àanalytics
, avec prise en charge des éléments suivants :- Extensions avec champs répétés
- Ressources FHIR contenues
analytics-v2
occupe plus d'espace dans la table de destination queanalytics
.
- WRITE_DISPOSITION: valeur pour
WriteDisposition
. Utilisez l'une des valeurs suivantes :write-empty
: n'exporter les données que si les tables BigQuery de destination sont videswrite-truncate
: effacer toutes les données existantes des tables BigQuery avant d'écrire les ressources FHIR.write-append
: ajoutez les données aux tables BigQuery de destination.
- FHIR_RESOURCE_TYPE: champ facultatif. Spécifiez un ou plusieurs types de ressources FHIR délimités par une virgule pour n'exporter que les ressources FHIR de ces types.
- SINCE_TIMESTAMP: champ facultatif. Spécifiez une valeur au format
YYYY-MM-DDThh:mm:ss.sss+zz:zz
pour n'exporter que les ressources FHIR mises à jour après une heure spécifique. Spécifiez l'heure à la seconde près et incluez un fuseau horaire. Par exemple,2015-02-07T13:28:17.239+02:00
et2017-01-01T00:00:00Z
sont des heures valides.
Exécutez la commande suivante :
Linux, macOS ou 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
une fois l'exportation terminée. Notez la valeur deOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Réponse
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
Pour afficher plus de détails sur l'opération, exécutez la commande
gcloud healthcare operations describe
et fournissez la valeur OPERATION_ID de la réponse.Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Exécutez la commande suivante :
Linux, macOS ou 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
Vous devriez obtenir un résultat semblable à celui-ci :
Réponse
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
Pour exporter des ressources FHIR vers BigQuery, utilisez la méthode projects.locations.datasets.fhirStores.export
.
Exportez les ressources FHIR:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant vers lequel vous exportez les ressources FHIR
- SCHEMA_TYPE: valeur pour
SchemaType
. Utilisez l'une des valeurs suivantes :ANALYTICS
: schéma basé sur le document SQL sur FHIR. BigQuery n'autorisant que 10 000 colonnes par table, les schémas ne sont pas générés pour les champsParameters.parameter.resource
,Bundle.entry.resource
etBundle.entry.response.outcome
.ANALYTICS_V2
: schéma semblable àANALYTICS
, avec prise en charge des éléments suivants :- Extensions avec plusieurs valeurs pour le même
url
- Ressources FHIR contenues
.ANALYTICS_V2
occupe plus d'espace dans la table de destination queANALYTICS
- Extensions avec plusieurs valeurs pour le même
- WRITE_DISPOSITION: valeur pour
WriteDisposition
. Utilisez l'une des valeurs suivantes :WRITE_EMPTY
: n'exporter les données que si les tables BigQuery de destination sont videsWRITE_TRUNCATE
: effacez toutes les données existantes des tables BigQuery avant d'écrire les ressources FHIR.WRITE_APPEND
: ajoutez les données aux tables BigQuery de destination.
- FHIR_RESOURCE_TYPE: champ facultatif. Spécifiez un ou plusieurs types de ressources FHIR séparés par une virgule pour n'exporter que les ressources FHIR de ces types.
- SINCE_TIMESTAMP: champ facultatif. Spécifiez une valeur au format
YYYY-MM-DDThh:mm:ss.sss+zz:zz
pour n'exporter que les ressources FHIR mises à jour après une heure spécifique. Spécifiez l'heure à la seconde près et incluez un fuseau horaire. Par exemple,2015-02-07T13:28:17.239+02:00
et2017-01-01T00:00:00Z
sont des heures valides.
Corps JSON de la requête :
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :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
Exécutez ensuite la commande suivante pour envoyer votre requête 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
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête 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 ContentAPI Explorer
Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
OPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir l'état de l'opération de longue durée.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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 ContentAPI Explorer
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.
Exporter des ressources FHIR vers des tables partitionnées
Pour exporter des ressources FHIR vers des tables partitionnées BigQuery, définissez l'énumération TimePartitioning
dans le champ lastUpdatedPartitionConfig
de votre entrepôt FHIR.
Les tables partitionnées fonctionnent comme les tables partitionnées par unité de temps de BigQuery.
Les tables partitionnées comportent une colonne nommée lastUpdated
, qui est un double de la colonne meta.lastUpdated
générée à partir du champ meta.lastUpdated
dans une ressource FHIR. BigQuery utilise la colonne lastUpdated
pour partitionner les tables par heure, jour, mois ou année.
Consultez la section Sélectionner le partitionnement quotidien, horaire, mensuel ou annuel pour obtenir des recommandations sur la sélection d'une précision de partitionnement.
Vous ne pouvez pas convertir des tables BigQuery existantes non partitionnées en tables partitionnées. Si vous exportez les modifications des ressources patient vers une table Patients
non partitionnée, puis créez ultérieurement un magasin FHIR avec un partitionnement de table qui exporte vers le même ensemble de données BigQuery, l'API Cloud Healthcare exporte toujours les données vers la table Patients
non partitionnée. Pour commencer à utiliser une table partitionnée, supprimez la table Patients
existante ou utilisez un autre ensemble de données BigQuery.
Si vous ajoutez un partitionnement à une configuration de magasin FHIR existante, vous pouvez toujours exporter vers des tables non partitionnées existantes. Toutefois, le partitionnement ne s'applique qu'aux nouvelles tables.
Les exemples suivants montrent comment exporter des ressources FHIR vers des tables partitionnées BigQuery.
Console
La console Google Cloud et gcloud CLI ne permettent pas d'effectuer cette opération. Utilisez plutôt curl
, PowerShell ou le langage de votre choix.
gcloud
La console Google Cloud et gcloud CLI ne permettent pas d'effectuer cette opération. Utilisez plutôt curl
, PowerShell ou le langage de votre choix.
REST
Pour exporter des ressources FHIR vers des tables partitionnées BigQuery, utilisez la méthode projects.locations.datasets.fhirStores.export
.
Exportez les ressources FHIR:
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin FHIR.
- FHIR_STORE_ID : ID du magasin FHIR.
- BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant vers lequel vous exportez les ressources FHIR
- SCHEMA_TYPE: valeur pour
SchemaType
. Utilisez l'une des valeurs suivantes :ANALYTICS
: schéma basé sur le document SQL sur FHIR. BigQuery n'autorisant que 10 000 colonnes par table, les schémas ne sont pas générés pour les champsParameters.parameter.resource
,Bundle.entry.resource
etBundle.entry.response.outcome
.ANALYTICS_V2
: schéma semblable àANALYTICS
, avec prise en charge des éléments suivants :- Extensions avec plusieurs valeurs pour le même
url
- Ressources FHIR contenues
.ANALYTICS_V2
utilise plus d'espace dans la table de destination queANALYTICS
- Extensions avec plusieurs valeurs pour le même
- TIME_PARTITION_TYPE: niveau de précision à utiliser pour partitionner les ressources FHIR exportées. Utilisez l'une des valeurs suivantes :
HOUR
: partitionner les données par heureDAY
: partitionner les données par jourMONTH
: partitionner les données par moisYEAR
: partitionne les données par année.
- WRITE_DISPOSITION: valeur pour
WriteDisposition
. Utilisez l'une des valeurs suivantes :WRITE_EMPTY
: n'exporter les données que si la table BigQuery est videWRITE_TRUNCATE
: effacer toutes les données existantes de la table BigQuery avant d'écrire les instances DICOM.WRITE_APPEND
: ajouter les données à la table BigQuery.
Corps JSON de la requête :
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :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
Exécutez ensuite la commande suivante pour envoyer votre requête 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
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :@' { "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
Exécutez ensuite la commande suivante pour envoyer votre requête 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 ContentAPI Explorer
Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Vous devriez recevoir une réponse JSON de ce type :
Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir l'état de l'opération de longue durée.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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 ContentAPI Explorer
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.
Interroger une table partitionnée
Pour réduire les coûts des requêtes lorsque vous interrogez des tables partitionnées, utilisez la clause WHERE
pour filtrer par unités de temps.
Par exemple, supposons que vous définissiez l'énumération PartitionType
sur DAY
.
Pour interroger une table Patients
sur les ressources Patient mises à jour à une date spécifique, exécutez la requête suivante:
SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients` WHERE DATE(lastUpdated) = 'YYYY-MM-DD'
Exportations incrémentielles
Vous pouvez spécifier un code temporel pour n'exporter que les ressources FHIR ajoutées à votre magasin FHIR depuis une exportation précédente réussie. Cela améliore les performances et évite le coût de réexportation de l'ensemble du magasin FHIR, tout en vous assurant que vos données exportées sont toujours à jour.
Lorsque vous appelez fhirStores.export
, spécifiez le code temporel dans le champ _since
.
Interroger et analyser des données FHIR dans BigQuery
Après avoir exporté les ressources FHIR vers BigQuery, consultez la solution Analyser des données FHIR dans BigQuery pour en savoir plus sur l'interrogation et l'analyse des données exportées. La solution utilise l'ensemble de données public de données synthétiques générées Synthea™ dans FHIR, qui héberge plus d'un million d'enregistrements patient synthétiques générés aux formats Synthea™ et FHIR.
Résoudre les problèmes liés aux requêtes d'exportation FHIR
Si des erreurs se produisent lors d'une requête d'exportation FHIR, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.
Si l'ensemble de l'opération renvoie une erreur, consultez la section Résoudre les problèmes d'opérations de longue durée.
Impossible de convertir une colonne du mode NULLABLE au mode REPEATED
Cette erreur est due à une extension répétée. Pour résoudre cette erreur, utilisez le type de schéma ANALYTICS_V2
. Si vous utilisez ANALYTICS_V2
, vous risquez de rencontrer un conflit entre deux extensions ou entre une extension et un autre champ.
Les noms de colonnes sont générés à partir du texte qui suit le dernier caractère /
dans les URL d'extension. Si une URL d'extension se termine par une valeur telle que /resource_field name
, un conflit peut se produire. \
Pour éviter que cette erreur ne se reproduise, n'utilisez pas d'extensions si leurs noms de champ sont identiques à ceux des champs de ressources que vous renseignez.
Étape suivante
- Pour en savoir plus sur la sécurité et la gouvernance des données dans BigQuery, consultez la section Présentation de la sécurité et de la gouvernance des données.