Mengekspor resource FHIR secara massal ke BigQuery

Halaman ini menjelaskan cara mengekspor resource FHIR secara massal ke BigQuery untuk eksplorasi dan analisis. Operasi ekspor membuat satu tabel BigQuery untuk setiap jenis resource FHIR di penyimpanan FHIR Anda.

Untuk meningkatkan performa kueri dan mengurangi biaya, pertimbangkan untuk mengekspor resource FHIR ke tabel berpartisi. Untuk mengetahui petunjuknya, lihat Mengekspor resource FHIR ke tabel berpartisi.

Jika Anda mengekspor resource FHIR sesuai jadwal, pertimbangkan untuk mengekspor data secara bertahap. Untuk mengetahui petunjuknya, lihat Ekspor inkremental.

Menetapkan izin BigQuery

Sebelum mengekspor resource FHIR ke BigQuery, Anda harus memberikan izin tambahan ke akun layanan Cloud Healthcare Service Agent. Untuk mengetahui informasi selengkapnya, lihat Izin BigQuery penyimpanan FHIR.

Memahami perilaku ekspor

Perilaku operasi ekspor bergantung pada hal berikut:

  • Apakah tabel tujuan ada.
  • Apakah Anda menetapkan kolom force.
  • Apakah Anda menentukan enum di WriteDisposition. Jika Anda menentukan enum, jangan tetapkan kolom force.

Perilaku dalam setiap kasus adalah sebagai berikut:

  • Tabel tujuan ada dan force ditetapkan ke true: operasi ekspor menimpa tabel yang ada
  • Tabel tujuan ada dan force ditetapkan ke false: error terjadi
  • Tabel tujuan tidak ada: operasi ekspor akan membuat tabel baru, terlepas dari apakah Anda menentukan kolom force atau tidak
  • Tabel tujuan ada dan Anda menetapkan WriteDisposition ke WRITE_TRUNCATE atau WRITE_APPEND: operasi ekspor berhasil, bukan menampilkan error

Operasi ini menghasilkan satu tabel BigQuery untuk setiap jenis resource di penyimpanan FHIR.

Mengekspor resource FHIR secara massal

Contoh berikut menunjukkan cara mengekspor resource FHIR ke tabel BigQuery.

Saat menentukan tujuan BigQuery, gunakan URI yang sepenuhnya memenuhi syarat:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Konsol

Untuk mengekspor resource FHIR ke BigQuery menggunakan konsol Google Cloud, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Datasets.

    Buka Set Data

  2. Klik set data yang memiliki penyimpanan FHIR dengan data yang Anda ekspor.

  3. Di baris yang sama dengan penyimpanan FHIR, buka daftar Tindakan, lalu pilih Ekspor.

  4. Di halaman Ekspor resource FHIR yang muncul, temukan bagian Pilih tujuan. Pilih Tabel BigQuery.

  5. Di bagian Disposisi tulis tabel tujuan, pilih salah satu opsi berikut untuk menentukan perilaku operasi ekspor:

    • Hanya ekspor data jika tabel tujuan kosong: ini setara dengan memilih enum WRITE_EMPTY di WriteDisposition.
    • Menambahkan data ke tabel tujuan: tindakan ini setara dengan memilih enum WRITE_APPEND di WriteDisposition.
    • Menghapus semua data yang ada di tabel tujuan sebelum menulis resource FHIR: tindakan ini setara dengan memilih enum WRITE_TRUNCATE di WriteDisposition.
  6. Di bagian Konfigurasi ekspor FHIR, klik Jelajahi untuk memilih project dan set data BigQuery.

  7. Di dropdown Schema type, pilih skema output untuk tabel BigQuery. Skema berikut tersedia:

    • Analytics. Skema berdasarkan dokumen SQL on FHIR. Karena BigQuery hanya mengizinkan 10.000 kolom per tabel, skema tidak dibuat untuk kolom Parameters.parameter.resource, Bundle.entry.resource, dan Bundle.entry.response.outcome.
    • Analytics V2. Skema yang mirip dengan skema Analytics, dengan dukungan tambahan untuk hal berikut: Skema Analytics V2 menggunakan lebih banyak ruang di tabel tujuan daripada skema Analytics.

  8. Pilih tingkat kedalaman di penggeser Kedalaman Struktur Rekursif untuk menetapkan kedalaman untuk semua struktur rekursif dalam skema output. Secara default, nilai rekursifnya adalah 2.

    Untuk informasi selengkapnya, lihat recursiveStructureDepth.

  9. Klik Ekspor untuk mengekspor resource FHIR ke BigQuery.

  10. Untuk melacak status operasi, klik tab Operasi. Setelah operasi selesai, petunjuk berikut akan muncul:
    • Bagian Status operasi yang berjalan lama memiliki tanda centang hijau di bawah judul Oke.
    • Bagian Ringkasan memiliki tanda centang hijau dan indikator OK di baris yang sama dengan ID operasi.
    Jika Anda mengalami error, klik Actions, lalu klik View details in Cloud Logging.

gcloud

Untuk mengekspor resource FHIR ke BigQuery, jalankan perintah gcloud healthcare fhir-stores export bq.

  1. Mengekspor resource FHIR.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: lokasi set data
    • DATASET_ID: set data induk penyimpanan FHIR
    • FHIR_STORE_ID: ID FHIR store
    • BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor resource FHIR
    • SCHEMA_TYPE: nilai untuk SchemaType. Gunakan salah satu nilai berikut:
      • analytics. Skema berdasarkan dokumen SQL on FHIR. Karena BigQuery hanya mengizinkan 10.000 kolom per tabel, skema tidak dibuat untuk kolom Parameters.parameter.resource, Bundle.entry.resource, dan Bundle.entry.response.outcome.
      • analytics_v2. Skema yang mirip dengan analytics dengan dukungan tambahan untuk hal berikut:

        analytics-v2 menggunakan lebih banyak ruang di tabel tujuan daripada analytics.

    • WRITE_DISPOSITION: nilai untuk WriteDisposition. Gunakan salah satu nilai berikut:
      • write-empty. Hanya ekspor data jika tabel BigQuery tujuan kosong.
      • write-truncate. Menghapus semua data yang ada di tabel BigQuery sebelum menulis resource FHIR.
      • write-append. Menambahkan data ke tabel BigQuery tujuan.
    • FHIR_RESOURCE_TYPE: kolom opsional. Tentukan satu atau beberapa jenis resource FHIR yang dipisahkan koma untuk hanya mengekspor resource FHIR dari jenis tersebut.
    • SINCE_TIMESTAMP: kolom opsional. Tentukan nilai dalam format YYYY-MM-DDThh:mm:ss.sss+zz:zz untuk hanya mengekspor resource FHIR yang diperbarui setelah waktu tertentu. Tentukan waktu hingga detik dan sertakan zona waktu. Misalnya, 2015-02-07T13:28:17.239+02:00 dan 2017-01-01T00:00:00Z adalah waktu yang valid.

    Jalankan perintah berikut:

    Linux, macOS, atau 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
    Responsnya adalah sebagai berikut. Respons ini berisi ID untuk operasi yang berjalan lama. Operasi yang berjalan lama ditampilkan saat panggilan metode mungkin memerlukan waktu yang cukup lama untuk diselesaikan. Perintah ini melakukan polling operasi yang berjalan lama, lalu mencetak nama operasi di kolom name setelah ekspor selesai. Perhatikan nilai OPERATION_ID. Anda memerlukan nilai ini di langkah berikutnya.

    Respons

    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
    

  2. Untuk melihat detail selengkapnya tentang operasi, jalankan gcloud healthcare operations describe dan berikan OPERATION_ID dari respons.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • DATASET_ID: ID set data
    • LOCATION: lokasi set data
    • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

    Jalankan perintah berikut:

    Linux, macOS, atau 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

    Anda akan melihat respons seperti berikut:

    Respons

    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

Untuk mengekspor resource FHIR ke BigQuery, gunakan metode projects.locations.datasets.fhirStores.export.

  1. Mengekspor resource FHIR:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: lokasi set data
    • DATASET_ID: set data induk penyimpanan FHIR
    • FHIR_STORE_ID: ID FHIR store
    • BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor resource FHIR
    • SCHEMA_TYPE: nilai untuk SchemaType. Gunakan salah satu nilai berikut:
      • ANALYTICS. Skema berdasarkan dokumen SQL on FHIR. Karena BigQuery hanya mengizinkan 10.000 kolom per tabel, skema tidak dibuat untuk kolom Parameters.parameter.resource, Bundle.entry.resource, dan Bundle.entry.response.outcome.
      • ANALYTICS_V2. Skema yang mirip dengan ANALYTICS dengan dukungan tambahan untuk hal berikut:

        ANALYTICS_V2 menggunakan lebih banyak ruang di tabel tujuan daripada ANALYTICS

        .
    • WRITE_DISPOSITION: nilai untuk WriteDisposition. Gunakan salah satu nilai berikut:
      • WRITE_EMPTY. Hanya ekspor data jika tabel BigQuery tujuan kosong.
      • WRITE_TRUNCATE. Menghapus semua data yang ada di tabel BigQuery sebelum menulis resource FHIR.
      • WRITE_APPEND. Menambahkan data ke tabel BigQuery tujuan.
    • FHIR_RESOURCE_TYPE: kolom opsional. Tentukan satu atau beberapa jenis resource FHIR yang dipisahkan koma untuk hanya mengekspor resource FHIR dari jenis tersebut.
    • SINCE_TIMESTAMP: kolom opsional. Tentukan nilai dalam format YYYY-MM-DDThh:mm:ss.sss+zz:zz untuk hanya mengekspor resource FHIR yang diperbarui setelah waktu tertentu. Tentukan waktu hingga detik dan sertakan zona waktu. Misalnya, 2015-02-07T13:28:17.239+02:00 dan 2017-01-01T00:00:00Z adalah waktu yang valid.

    Meminta isi JSON:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    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

    Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

    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

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    @'
    {
      "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

    Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

    $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 Content

    APIs Explorer

    Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

    Output-nya adalah sebagai berikut. Respons berisi ID untuk operasi yang berjalan lama (LRO). Operasi yang berjalan lama ditampilkan saat panggilan metode mungkin memerlukan waktu tambahan untuk diselesaikan. Perhatikan nilai OPERATION_ID. Anda memerlukan nilai ini di langkah berikutnya.

  2. Gunakan metode projects.locations.datasets.operations.get untuk mendapatkan status operasi yang berjalan lama.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • DATASET_ID: ID set data
    • LOCATION: lokasi set data
    • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Jalankan perintah berikut:

    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

    Jalankan perintah berikut:

    $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 Content

    APIs Explorer

    Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

    Output-nya adalah sebagai berikut. Jika respons berisi "done": true, operasi yang berjalan lama telah selesai.

Mengekspor resource FHIR ke tabel berpartisi

Untuk mengekspor resource FHIR ke tabel berpartisi BigQuery, tetapkan enum TimePartitioning di kolom lastUpdatedPartitionConfig di penyimpanan FHIR Anda.

Tabel yang dipartisi berfungsi seperti tabel berpartisi unit waktu BigQuery. Tabel berpartisi memiliki kolom tambahan bernama lastUpdated, yang merupakan duplikat kolom meta.lastUpdated yang dihasilkan dari kolom meta.lastUpdated di resource FHIR. BigQuery menggunakan kolom lastUpdated untuk mempartisi tabel berdasarkan jam, hari, bulan, atau tahun.

Lihat Memilih partisi harian, per jam, bulanan, atau tahunan untuk mengetahui rekomendasi tentang cara memilih perincian partisi.

Anda tidak dapat mengonversi tabel BigQuery yang ada dan tidak dipartisi menjadi tabel berpartisi. Jika Anda mengekspor perubahan Resource pasien ke tabel Patients yang tidak dipartisi, lalu membuat penyimpanan FHIR baru dengan partisi tabel yang diekspor ke set data BigQuery yang sama, Cloud Healthcare API masih mengekspor data ke tabel Patients yang tidak dipartisi. Untuk mulai menggunakan tabel berpartisi, hapus tabel Patients yang ada atau gunakan set data BigQuery yang berbeda.

Jika menambahkan partisi ke konfigurasi penyimpanan FHIR yang ada, Anda masih dapat mengekspor ke tabel yang tidak berpartisi yang ada. Namun, partisi hanya akan berlaku pada tabel baru.

Contoh berikut menunjukkan cara mengekspor resource FHIR ke tabel yang dipartisi BigQuery.

Konsol

Konsol Google Cloud dan gcloud CLI tidak mendukung tindakan ini. Sebagai gantinya, gunakan curl, PowerShell, atau bahasa pilihan Anda.

gcloud

Konsol Google Cloud dan gcloud CLI tidak mendukung tindakan ini. Sebagai gantinya, gunakan curl, PowerShell, atau bahasa pilihan Anda.

REST

Untuk mengekspor resource FHIR ke tabel berpartisi BigQuery, gunakan metode projects.locations.datasets.fhirStores.export.

  1. Mengekspor resource FHIR:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • LOCATION: lokasi set data
    • DATASET_ID: set data induk penyimpanan FHIR
    • FHIR_STORE_ID: ID FHIR store
    • BIGQUERY_DATASET_ID: nama set data BigQuery yang ada tempat Anda mengekspor resource FHIR
    • SCHEMA_TYPE: nilai untuk SchemaType. Gunakan salah satu nilai berikut:
      • ANALYTICS. Skema berdasarkan dokumen SQL on FHIR. Karena BigQuery hanya mengizinkan 10.000 kolom per tabel, skema tidak dibuat untuk kolom Parameters.parameter.resource, Bundle.entry.resource, dan Bundle.entry.response.outcome.
      • ANALYTICS_V2. Skema yang mirip dengan ANALYTICS dengan dukungan tambahan untuk hal berikut:

        ANALYTICS_V2 menggunakan lebih banyak ruang di tabel tujuan daripada ANALYTICS

        .
    • TIME_PARTITION_TYPE: tingkat perincian untuk mempartisi resource FHIR yang diekspor. Gunakan salah satu nilai berikut:
      • HOUR: mempartisi data menurut jam
      • DAY: mempartisi data menurut hari
      • MONTH: mempartisi data menurut bulan
      • YEAR: mempartisi data menurut tahun
    • WRITE_DISPOSITION: nilai untuk WriteDisposition. Gunakan salah satu nilai berikut:
      • WRITE_EMPTY: hanya ekspor data jika tabel BigQuery kosong.
      • WRITE_TRUNCATE: menghapus semua data yang ada di tabel BigQuery sebelum menulis instance DICOM.
      • WRITE_APPEND: menambahkan data ke tabel BigQuery.

    Meminta isi JSON:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    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

    Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

    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

    Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

    @'
    {
      "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

    Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

    $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 Content

    APIs Explorer

    Salin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.

    Anda akan melihat respons JSON seperti berikut:

  2. Gunakan metode projects.locations.datasets.operations.get untuk mendapatkan status operasi yang berjalan lama.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: ID project Google Cloud Anda
    • DATASET_ID: ID set data
    • LOCATION: lokasi set data
    • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Jalankan perintah berikut:

    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

    Jalankan perintah berikut:

    $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 Content

    APIs Explorer

    Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.

    Output-nya adalah sebagai berikut. Jika respons berisi "done": true, operasi yang berjalan lama telah selesai.

Membuat kueri tabel berpartisi

Untuk mengurangi biaya kueri saat membuat kueri tabel yang dipartisi, gunakan klausa WHERE untuk memfilter menurut unit waktu.

Misalnya, Anda menetapkan enum PartitionType ke DAY. Untuk membuat kueri tabel Patients untuk resource Pasien yang diperbarui pada tanggal tertentu, jalankan kueri berikut:

SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients`
  WHERE DATE(lastUpdated) = 'YYYY-MM-DD'

Ekspor inkremental

Anda dapat menentukan stempel waktu untuk hanya mengekspor resource FHIR yang ditambahkan ke penyimpanan FHIR sejak ekspor sebelumnya yang berhasil. Tindakan ini meningkatkan performa dan menghindari biaya ekspor ulang seluruh penyimpanan FHIR, sekaligus memastikan data yang diekspor selalu yang terbaru.

Saat memanggil fhirStores.export, tentukan stempel waktu di kolom _since.

Membuat kueri dan menganalisis data FHIR di BigQuery

Setelah mengekspor resource FHIR ke BigQuery, lihat solusi Menganalisis data FHIR di BigQuery untuk mengetahui informasi tentang cara membuat kueri dan menganalisis data yang diekspor. Solusi ini menggunakan set data publik Data Sintetis yang Dihasilkan Synthea™ di FHIR, yang menghosting lebih dari 1 juta catatan pasien sintetis yang dihasilkan dalam format Synthea™ dan FHIR.

Memecahkan masalah permintaan ekspor FHIR

Jika terjadi error selama permintaan ekspor FHIR, error tersebut akan dicatat ke Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat artikel Melihat log error di Cloud Logging.

Jika seluruh operasi menampilkan error, lihat Memecahkan masalah operasi yang berjalan lama.

Tidak dapat mengonversi kolom dari NULLABLE menjadi REPEATED

Error ini disebabkan oleh ekstensi yang berulang. Untuk mengatasi error ini, gunakan jenis skema ANALYTICS_V2. Jika menggunakan ANALYTICS_V2, Anda mungkin memiliki konflik antara dua ekstensi, atau konflik antara ekstensi dan kolom lain.

Nama kolom dihasilkan dari teks setelah karakter / terakhir di URL ekstensi. Jika URL ekstensi diakhiri dengan nilai seperti /resource_field name, konflik dapat terjadi. \

Untuk mencegah error ini terjadi lagi, jangan gunakan ekstensi jika nama kolomnya sama dengan kolom resource yang Anda isi.

Langkah selanjutnya