Esta página descreve como exportar recursos FHIR em lote para o BigQuery para análise e exploração. A operação de exportação cria uma tabela do BigQuery para cada tipo de recurso FHIR na sua loja FHIR.
Para melhorar o desempenho da consulta e reduzir custos, exporte os recursos do FHIR para tabelas particionadas. Para instruções, consulte Exportar recursos do FHIR para tabelas particionadas.
Se você exporta recursos do FHIR em uma programação, exporte seus dados de forma incremental. Para instruções, consulte Exportações incrementais.
Como configurar permissões do BigQuery
Antes de exportar recursos FHIR para o BigQuery, é preciso conceder outras permissões à conta de serviço do Agente de serviço do Cloud Healthcare. Para mais informações, consulte Permissões do BigQuery para armazenar FHIR.
Entender o comportamento de exportação
O comportamento da operação de exportação depende do seguinte:
- Se a tabela de destino existe.
- Se você definiu o campo
force
. - Se você especificou um tipo enumerado em
WriteDisposition
. Se você especificar um tipo enumerado, não defina o campoforce
.
O comportamento em cada caso é o seguinte:
- A tabela de destino existe e
force
está definida comotrue
: a operação de exportação substitui a tabela atual. - A tabela de destino existe e
force
está definida comofalse
: ocorre um erro - A tabela de destino não existe: a operação de exportação cria uma nova tabela, independentemente de você especificar o campo
force
. A tabela de destino existe e você define
WriteDisposition
comoWRITE_TRUNCATE
ouWRITE_APPEND
: a operação de exportação é concluída em vez de retornar um erro.
A operação gera uma tabela do BigQuery para cada tipo de recurso no armazenamento FHIR.
Exportar recursos FHIR em lote
Os exemplos a seguir mostram como exportar recursos FHIR para uma tabela do BigQuery.
Ao especificar o destino do BigQuery, use o URI totalmente qualificado:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Console
Para exportar recursos FHIR para o BigQuery usando o console do Google Cloud, conclua as seguintes etapas:
No console do Google Cloud, acesse a página Conjuntos de dados.
Clique no conjunto de dados que tem o armazenamento FHIR com os dados que você está exportando.
Na mesma linha da loja FHIR, abra a lista Ações e selecione Exportar.
Na página Exportar recursos FHIR que aparece, encontre a seção Selecionar um destino. Selecione Tabela do BigQuery.
Na seção Disposição de gravação da tabela de destino, selecione uma das seguintes opções para determinar o comportamento da operação de exportação:
- Só exportar dados se as tabelas de destino estiverem vazias: isso equivale
a selecionar o tipo enumerado
WRITE_EMPTY
emWriteDisposition
. - Anexar dados às tabelas de destino: isso é equivalente
a selecionar o tipo enumerado
WRITE_APPEND
emWriteDisposition
. - Apagar todos os dados nas tabelas de destino antes de gravar os recursos
FHIR: isso equivale a selecionar o tipo enumerado
WRITE_TRUNCATE
emWriteDisposition
.
- Só exportar dados se as tabelas de destino estiverem vazias: isso equivale
a selecionar o tipo enumerado
Na seção Configuração de exportação do FHIR, clique em Procurar para selecionar o projeto e o conjunto de dados do BigQuery.
No menu suspenso Tipo de esquema, selecione o esquema de saída da tabela do BigQuery. Os seguintes esquemas estão disponíveis:
- Google Analytics. Um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 10.000 colunas por tabela, os esquemas não são gerados para os campos
Parameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
. - Google Analytics V2. Um esquema semelhante ao do Google Analytics, com suporte adicional para: O esquema do Google Analytics V2 usa mais espaço na tabela de destino do que o esquema do Google Analytics.
- Google Analytics. Um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 10.000 colunas por tabela, os esquemas não são gerados para os campos
Selecione um nível de profundidade no controle deslizante Profundidade da estrutura recursiva para definir a profundidade de todas as estruturas recursivas no esquema de saída. Por padrão, o valor recursivo é 2.
Para ver mais informações, consulte
recursiveStructureDepth
.Clique em Exportar para exportar recursos FHIR para o BigQuery.
- Para acompanhar o status da operação, clique na guia Operações. Após a conclusão da operação, as seguintes indicações serão exibidas:
- A seção Status da operação de longa duração tem uma marca de seleção verde no cabeçalho OK.
- A seção Visão geral tem uma marca de seleção verde e um indicador OK na mesma linha do ID da operação.
gcloud
Para exportar recursos FHIR para o BigQuery, execute o comando
gcloud healthcare fhir-stores export bq
.
Exporte os recursos do FHIR.
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery em que você está exportando recursos FHIR
- SCHEMA_TYPE: um valor para
SchemaType
. Use um dos seguintes valores:analytics
: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 10.000 colunas por tabela, os esquemas não são gerados para os camposParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.analytics_v2
: um esquema semelhante aanalytics
com suporte adicional para o seguinte:analytics-v2
usa mais espaço na tabela de destino do queanalytics
.
- WRITE_DISPOSITION: um valor para
WriteDisposition
. Use um dos seguintes valores:write-empty
: só exporta dados se as tabelas de destino do BigQuery estiverem vazias.write-truncate
: apague todos os dados nas tabelas do BigQuery antes de gravar os recursos FHIR.write-append
. Anexe dados às tabelas de destino do BigQuery.
- FHIR_RESOURCE_TYPE: um campo opcional. Especifique um ou mais tipos de recursos FHIR delimitados por vírgulas para exportar apenas recursos FHIR desses tipos.
- SINCE_TIMESTAMP: um campo opcional. Especifique um valor no formato
YYYY-MM-DDThh:mm:ss.sss+zz:zz
para exportar apenas os recursos do FHIR atualizados após um período específico. Especifique a hora até o segundo e inclua um fuso horário. Por exemplo,2015-02-07T13:28:17.239+02:00
e2017-01-01T00:00:00Z
são horários válidos.
Execute o seguinte comando:
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
após a exportação ser concluída. Observe o valor deOPERATION_ID
. Você vai precisar desse valor na próxima etapa.Resposta
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
Para conferir mais detalhes sobre a operação, execute o comando
gcloud healthcare operations describe
e forneça o OPERATION_ID da resposta.Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- DATASET_ID: o ID do conjunto de dados;
- LOCATION: o local do conjunto de dados;
- OPERATION_ID: o ID retornado da operação de longa duração.
Execute o seguinte comando:
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
Você receberá uma resposta semelhante a esta:
Resposta
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
Para exportar recursos FHIR para o BigQuery, use o método
projects.locations.datasets.fhirStores.export
.
Exporte os recursos do FHIR:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery em que você está exportando recursos FHIR
- SCHEMA_TYPE: um valor para
SchemaType
. Use um dos seguintes valores:ANALYTICS
: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 10.000 colunas por tabela, os esquemas não são gerados para os camposParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.ANALYTICS_V2
: um esquema semelhante aANALYTICS
com suporte adicional para o seguinte:
.ANALYTICS_V2
usa mais espaço na tabela de destino do queANALYTICS
- WRITE_DISPOSITION: um valor para
WriteDisposition
. Use um dos seguintes valores:WRITE_EMPTY
: só exporta dados se as tabelas de destino do BigQuery estiverem vazias.WRITE_TRUNCATE
: apague todos os dados nas tabelas do BigQuery antes de gravar os recursos FHIR.WRITE_APPEND
. Anexe dados às tabelas de destino do BigQuery.
- FHIR_RESOURCE_TYPE: um campo opcional. Especifique um ou mais tipos de recursos FHIR delimitados por vírgulas para exportar apenas recursos FHIR desses tipos.
- SINCE_TIMESTAMP: um campo opcional. Especifique um valor no formato
YYYY-MM-DDThh:mm:ss.sss+zz:zz
para exportar apenas os recursos do FHIR atualizados após um período específico. Especifique a hora até o segundo e inclua um fuso horário. Por exemplo,2015-02-07T13:28:17.239+02:00
e2017-01-01T00:00:00Z
são horários válidos.
Corpo JSON da solicitação:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", }, "writeDisposition": "WRITE_DISPOSITION" }, "_type": "FHIR_RESOURCE_TYPE", "_since": "SINCE_TIMESTAMP" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual: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
Depois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:@' { "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
Depois execute o comando a seguir para enviar a solicitação 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 ContentAPIs Explorer
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
OPERATION_ID
. Você vai precisar desse valor na próxima etapa.Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- DATASET_ID: o ID do conjunto de dados;
- LOCATION: o local do conjunto de dados;
- OPERATION_ID: o ID retornado da operação de longa duração.
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
Execute o seguinte 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 ContentAPIs Explorer
Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração foi concluída.
Exportar recursos do FHIR para tabelas particionadas
Para exportar recursos FHIR para tabelas particionadas do BigQuery, defina o tipo enumerado
TimePartitioning
no campo
lastUpdatedPartitionConfig
na sua loja FHIR.
As tabelas particionadas funcionam como as tabelas particionadas por unidade de tempo do BigQuery.
As tabelas particionadas têm uma coluna adicionada chamada lastUpdated
, que é uma cópia
da coluna meta.lastUpdated
gerada a partir do campo meta.lastUpdated
em
um recurso FHIR. O BigQuery usa a coluna lastUpdated
para particionar tabelas por hora, dia, mês ou ano.
Consulte Selecionar particionamento diário, por hora, mensal ou anual para ver recomendações sobre como selecionar a granularidade de uma partição.
Não é possível converter tabelas do BigQuery não particionadas em tabelas particionadas. Se você exportar as mudanças de recursos do paciente
para uma tabela Patients
não particionada e,
mais tarde, criar um novo armazenamento FHIR com particionamento de tabela que exporta para o mesmo
conjunto de dados do BigQuery, a API Cloud Healthcare ainda vai exportar dados
para a tabela Patients
não particionada. Para começar a usar uma tabela particionada,
exclua a tabela Patients
atual ou use um conjunto de dados diferente do BigQuery.
Se você adicionar o particionamento a uma configuração de loja FHIR, ainda será possível exportar para tabelas não particionadas. No entanto, a partição só vai ser aplicada a novas tabelas.
Os exemplos a seguir mostram como exportar recursos FHIR para tabelas particionadas do BigQuery.
Console
O console do Google Cloud e a CLI gcloud não oferecem suporte a essa ação. Em vez disso, use curl
, PowerShell ou o idioma de sua preferência.
gcloud
O console do Google Cloud e a CLI gcloud não oferecem suporte a essa ação. Em vez disso, use curl
, PowerShell ou o idioma de sua preferência.
REST
Para exportar recursos FHIR para tabelas particionadas do BigQuery, use o
método
projects.locations.datasets.fhirStores.export
.
Exporte os recursos do FHIR:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- BIGQUERY_DATASET_ID: o nome do conjunto de dados do BigQuery em que você está exportando recursos FHIR
- SCHEMA_TYPE: um valor para
SchemaType
. Use um dos seguintes valores:ANALYTICS
: um esquema baseado no documento SQL no FHIR. Como o BigQuery permite apenas 10.000 colunas por tabela, os esquemas não são gerados para os camposParameters.parameter.resource
,Bundle.entry.resource
eBundle.entry.response.outcome
.ANALYTICS_V2
: um esquema semelhante aANALYTICS
com suporte adicional para o seguinte:
.ANALYTICS_V2
usa mais espaço na tabela de destino do queANALYTICS
- TIME_PARTITION_TYPE: a granularidade em que os recursos FHIR exportados são particionados. Use um dos seguintes valores:
HOUR
: particione os dados por horaDAY
: particione os dados por diaMONTH
: particione os dados por mêsYEAR
: particiona dados por ano
- WRITE_DISPOSITION: um valor para
WriteDisposition
. Use um dos seguintes valores:WRITE_EMPTY
: só exporta dados se a tabela do BigQuery estiver vazia.WRITE_TRUNCATE
: apague todos os dados atuais na tabela do BigQuery antes de gravar as instâncias do DICOM.WRITE_APPEND
: anexar dados à tabela do BigQuery.
Corpo JSON da solicitação:
{ "bigqueryDestination": { "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "SCHEMA_TYPE", "lastUpdatedPartitionConfig": { "type": "TIME_PARTITION_TYPE" } }, "writeDisposition": "WRITE_DISPOSITION" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual: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
Depois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:@' { "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
Depois execute o comando a seguir para enviar a solicitação 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 ContentAPIs Explorer
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- DATASET_ID: o ID do conjunto de dados;
- LOCATION: o local do conjunto de dados;
- OPERATION_ID: o ID retornado da operação de longa duração.
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
Execute o seguinte 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 ContentAPIs Explorer
Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração foi concluída.
Consultar uma tabela particionada
Para reduzir os custos de consulta ao consultar tabelas particionadas, use a cláusula
WHERE
para filtrar por unidades de tempo.
Por exemplo, suponha que você defina o tipo
enum PartitionType
como DAY
.
Para consultar uma tabela Patients
de recursos de paciente que foram atualizados em uma data específica, execute a seguinte consulta:
SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients` WHERE DATE(lastUpdated) = 'YYYY-MM-DD'
Exportações incrementais
É possível especificar um carimbo de data/hora para exportar apenas os recursos do FHIR adicionados ao armazenamento de FHIR desde uma exportação anterior. Isso melhora o desempenho e evita o custo de exportar novamente toda a loja FHIR, além de garantir que os dados exportados estejam sempre atualizados.
Ao chamar fhirStores.export
,
especifique o carimbo de data/hora no campo _since
.
Como consultar e analisar dados FHIR no BigQuery
Depois de exportar os recursos FHIR para o BigQuery, consulte a solução Como analisar dados FHIR no BigQuery para ver informações sobre como consultar e analisar os dados exportados. A solução usa o conjunto de dados público do Dados sintéticos gerados pelo Synthea no FHIR, que hospeda mais de um milhão de registros sintéticos de pacientes gerados nos formatos Synthea™ e FHIR.
Solução de problemas de solicitações de exportação FHIR
Se ocorrerem erros durante uma solicitação de exportação do FIHR, eles serão registrados no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.
Se toda a operação retornar um erro, consulte Solução de problemas de operações de longa duração.
Não é possível converter a coluna de NULLABLE para REPEATED
Esse erro é causado por uma extensão repetida. Para resolver esse erro,
use o tipo de esquema ANALYTICS_V2
. Se você estiver usando ANALYTICS_V2
, poderá haver um conflito entre duas extensões ou entre uma extensão e outro campo.
Os nomes das colunas são gerados a partir do texto após o último caractere /
em
URLs de extensão. Se um URL de extensão terminar com um valor como
/resource_field name
, um conflito poderá ocorrer. \
Para evitar que esse erro ocorra novamente, não use extensões se os nomes dos campos forem iguais aos campos de recursos que você está preenchendo.
A seguir
- Para saber mais sobre a governança e a segurança de dados no BigQuery, consulte Visão geral da segurança e governança de dados.