Mengelola transfer

Dokumen ini menunjukkan cara mengelola konfigurasi transfer data yang ada.

Anda juga dapat memicu transfer yang ada secara manual, yang juga dikenal sebagai memulai operasi pengisian ulang.

Melihat transfer Anda

Lihat konfigurasi transfer yang ada dengan melihat informasi tentang setiap transfer, mencantumkan semua transfer yang ada, dan melihat histori operasi transfer atau pesan log.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna melihat detail transfer, minta administrator untuk memberi Anda peran IAM BigQuery User (roles/bigquery.user) pada project tersebut. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Selain itu, untuk melihat pesan log melalui konsol Google Cloud, Anda harus memiliki izin untuk melihat data Cloud Logging. Peran Logs Viewer (roles/logging.viewer) memberi Anda akses hanya baca ke semua fitur Logging. Untuk mengetahui informasi selengkapnya tentang peran dan izin Identity and Access Management (IAM) yang berlaku untuk data log cloud, lihat panduan kontrol akses Cloud Logging.

Untuk mengetahui informasi selengkapnya tentang peran IAM dalam BigQuery Data Transfer Service, lihat Kontrol akses.

Mendapatkan detail transfer

Setelah melakukan transfer, Anda bisa mendapatkan informasi tentang konfigurasi transfer. Konfigurasi tersebut mencakup nilai yang Anda berikan saat membuat transfer, serta informasi penting lainnya seperti nama resource.

Untuk mendapatkan informasi tentang konfigurasi transfer:

Konsol

  1. Buka halaman Data transfers.

    Buka Data transfers

  2. Pilih transfer yang ingin Anda dapatkan detailnya.

  3. Untuk melihat konfigurasi transfer dan detail sumber data, klik Configuration di halaman Transfer details. Contoh berikut menunjukkan properti konfigurasi untuk transfer Google Ads:

    Mengonfigurasi transfer di konsol

bq

Masukkan perintah bq show, lalu masukkan nama resource konfigurasi transfer. Flag --format dapat digunakan untuk mengontrol format output.

bq show \
--format=prettyjson \
--transfer_config resource_name

Ganti resource_name dengan nama resource transfer (juga disebut sebagai konfigurasi transfer). Jika Anda tidak mengetahui nama resource transfer, temukan nama resource dengan: bq ls --transfer_config --transfer_location=location.

Misalnya, masukkan perintah berikut guna menampilkan konfigurasi transfer untuk projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Gunakan metode projects.locations.transferConfigs.get dan berikan konfigurasi transfer menggunakan parameter name.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

Mencantumkan konfigurasi transfer

Untuk mencantumkan semua konfigurasi transfer yang ada dalam sebuah project:

Konsol

  1. Di konsol Google Cloud, buka halaman Data transfers.

    Buka Data transfers

  2. Jika ada konfigurasi transfer dalam project, daftar konfigurasi transfer akan muncul di daftar transfer data.

bq

Untuk mencantumkan semua konfigurasi transfer bagi project berdasarkan lokasi, masukkan perintah bq ls dan berikan tanda --transfer_location dan --transfer_config. Anda juga dapat menyediakan flag --project_id untuk menentukan project tertentu. Jika --project_id tidak ditentukan, project default akan digunakan. Flag --format dapat digunakan untuk mengontrol format output.

Untuk mencantumkan konfigurasi transfer bagi sumber data tertentu, berikan flag --filter.

Untuk melihat jumlah konfigurasi transfer tertentu dalam format dengan penomoran halaman, berikan flag --max_results untuk menentukan jumlah transfer. Perintah ini menampilkan token halaman yang Anda berikan menggunakan flag --page_token untuk melihat n konfigurasi berikutnya. Ada batas 1.000 konfigurasi yang akan ditampilkan jika --max_results dihilangkan, dan --max_results tidak akan menerima nilai yang lebih besar dari 1.000. Jika project Anda memiliki lebih dari 1.000 konfigurasi, gunakan --max_results dan --page_token untuk melakukan iterasi pada semuanya.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

Ganti kode berikut:

Contoh:

Masukkan perintah berikut untuk menampilkan semua konfigurasi transfer di US untuk project default Anda. Output-nya dikontrol menggunakan flag --format.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

Masukkan perintah berikut untuk menampilkan semua konfigurasi transfer di AS untuk project ID myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

Masukkan perintah berikut untuk mencantumkan 3 konfigurasi transfer terbaru.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

Perintah ini menampilkan token halaman berikutnya. Salin token halaman dan berikan dalam perintah bq ls untuk melihat 3 hasil berikutnya.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

Masukkan perintah berikut untuk mencantumkan konfigurasi transfer Ads dan Campaign Manager untuk project ID myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,google_ads

API

Gunakan metode projects.locations.transferConfigs.list dan berikan project ID menggunakan parameter parent.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

project_id = "my-project"
parent = transfer_client.common_project_path(project_id)

configs = transfer_client.list_transfer_configs(parent=parent)
print("Got the following configs:")
for config in configs:
    print(f"\tID: {config.name}, Schedule: {config.schedule}")

Melihat histori operasi transfer

Saat transfer terjadwal Anda dijalankan, histori operasi akan disimpan untuk setiap konfigurasi transfer yang menyertakan operasi transfer yang berhasil dan operasi transfer yang gagal. Operasi transfer yang berjalan lebih dari 90 hari akan otomatis dihapus dari histori operasi.

Untuk melihat histori operasi konfigurasi transfer:

Konsol

  1. Di konsol Google Cloud, buka halaman Data transfers.

    Buka Data transfers

  2. Klik transfer di daftar transfer data.

  3. Anda akan berada di halaman RUN HISTORY untuk transfer yang dipilih.

bq

Untuk mencantumkan operasi transfer bagi konfigurasi transfer tertentu, masukkan perintah bq ls dan berikan flag --transfer_run. Anda juga dapat menyediakan flag --project_id untuk menentukan project tertentu. Jika resource_name tidak berisi informasi project, nilai --project_id akan digunakan. Jika --project_id tidak ditentukan, project default akan digunakan. Flag --format dapat digunakan untuk mengontrol format output.

Untuk melihat jumlah operasi transfer tertentu, berikan flag --max_results. Perintah ini menampilkan token halaman yang Anda berikan menggunakan flag --page_token untuk melihat n konfigurasi berikutnya.

Untuk mencantumkan operasi transfer berdasarkan status operasi, berikan flag --filter.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

Ganti kode berikut:

  • integer adalah jumlah hasil yang akan ditampilkan.
  • location adalah lokasi konfigurasi transfer. Lokasi ditentukan saat Anda membuat transfer.
  • project_id adalah project ID Anda.
  • state, ... adalah salah satu dari daftar berikut atau yang dipisahkan koma:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name adalah nama resource transfer (juga disebut sebagai konfigurasi transfer). Jika Anda tidak mengetahui nama resource transfer, cari nama resource dengan: bq ls --transfer_config --transfer_location=location.

Contoh:

Masukkan perintah berikut untuk menampilkan 3 operasi terbaru untuk konfigurasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. Output dikontrol menggunakan flag --format.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Perintah ini menampilkan token halaman berikutnya. Salin token halaman dan berikan dalam perintah bq ls untuk melihat 3 hasil berikutnya.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Masukkan perintah berikut guna menampilkan semua operasi yang gagal untuk konfigurasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Gunakan metode projects.locations.transferConfigs.runs.list dan tentukan project ID menggunakan parameter parent.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

Melihat detail operasi transfer dan pesan log

Saat operasi transfer muncul di histori operasi, Anda dapat melihat detail operasi, termasuk pesan log, peringatan dan error, nama operasi, serta waktu mulai dan berakhir.

Untuk melihat detail operasi transfer:

Konsol

  1. Di konsol Google Cloud, buka halaman Data transfers.

    Buka Data transfers

  2. Klik transfer di daftar transfer data.

  3. Anda akan berada di halaman RUN HISTORY untuk transfer yang dipilih.

  4. Klik setiap operasi transfer, dan panel Run details akan terbuka untuk operasi transfer tersebut.

  5. Di bagian Run details, catat semua pesan error. Informasi ini diperlukan jika Anda menghubungi Cloud Customer Care. Detail operasi juga mencakup peringatan dan pesan log.

    Detail operasi di konsol

bq

Untuk melihat detail operasi transfer, masukkan perintah bq show dan berikan Nama Operasi untuk operasi transfer menggunakan flag --transfer_run. Flag --format dapat digunakan untuk mengontrol format output.

bq show \
--format=prettyjson \
--transfer_run run_name

Ganti run_name dengan Nama Operasi dari operasi transfer. Anda dapat mengambil Nama Operasi menggunakan perintah bq ls.

Contoh:

Masukkan perintah berikut guna menampilkan detail operasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Untuk melihat pesan log transfer untuk operasi transfer, masukkan perintah bq ls dengan tanda --transfer_log. Anda dapat memfilter pesan log menurut jenisnya menggunakan flag --message_type.

Untuk melihat jumlah pesan log tertentu, berikan flag --max_results. Perintah ini menampilkan token halaman yang Anda berikan menggunakan flag --page_token untuk melihat n pesan berikutnya.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

Ganti kode berikut:

  • integer adalah jumlah pesan log yang akan ditampilkan.
  • message_type adalah jenis pesan log yang akan dilihat (satu nilai atau daftar yang dipisahkan koma):
    • INFO
    • WARNING
    • ERROR
  • run_name adalah Nama Operasi dari operasi transfer. Anda dapat mengambil Nama Operasi menggunakan perintah bq ls.

Contoh:

Masukkan perintah berikut guna melihat 2 pesan log pertama untuk operasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Perintah ini menampilkan token halaman berikutnya. Salin token halaman dan berikan dalam perintah bq ls untuk melihat 2 hasil berikutnya.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Masukkan perintah berikut guna melihat hanya pesan error untuk operasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

Gunakan metode projects.transferConfigs.runs.transferLogs.list dan berikan Nama Operasi untuk operasi transfer menggunakan parameter parent.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

Mengubah transfer Anda

Anda dapat mengubah transfer yang ada dengan mengedit informasi pada konfigurasi transfer, memperbarui kredensial pengguna yang dilampirkan ke konfigurasi transfer, dan menonaktifkan atau menghapus transfer.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan dalam mengubah transfer, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Memperbarui transfer

Setelah membuat konfigurasi transfer, Anda dapat mengedit kolom berikut:

  • Destination dataset
  • Nama tampilan
  • Setiap parameter yang ditentukan untuk jenis transfer tertentu
  • Setelan notifikasi operasi
  • Akun layanan

Anda tidak dapat mengedit sumber transfer setelah transfer dibuat.

Untuk memperbarui transfer:

Konsol

  1. Di konsol Google Cloud, buka halaman Data transfers.

    Buka Data transfers

  2. Klik transfer di daftar transfer data.

  3. Klik EDIT untuk memperbarui konfigurasi transfer.

bq

Masukkan perintah bq update, berikan nama resource konfigurasi transfer menggunakan flag --transfer_config, dan berikan flag --display_name, --params , --refresh_window_days, --schedule, atau --target_dataset. Anda juga dapat menyediakan flag --destination_kms_key untuk kueri terjadwal atau transfer Cloud Storage.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
RESOURCE_NAME

Ganti kode berikut:

  • NAME: nama tampilan untuk konfigurasi transfer.
  • PARAMETERS: parameter untuk konfigurasi transfer dalam format JSON. Contoh: --params='{"param1":"param_value1"}'. Parameter berikut dapat diedit:
    • Campaign Manager: bucket dan network_id
    • Google Ad Manager: bucket dan network_code
    • Google Ads: customer_id
    • Google Merchant Center: merchant_id
    • Google Play: bucket dan table_suffix
    • Kueri Terjadwal: destination_table_kms_key, destination_table_name_template, partitioning_field, partitioning_type, query, dan write_disposition
    • Search Ads 360: advertiser_id, agency_id, custom_floodlight_variables, include_removed_entities, dan table_filter
    • YouTube Channel: table_suffix
    • Pemilik Konten YouTube: content_owner_id dan table_suffix
  • INTEGER: nilai dari 0 hingga 30. Untuk mengetahui informasi cara menetapkan jendela refresh, lihat dokumentasi untuk jenis transfer Anda.
  • SCHEDULE: jadwal berulang, seperti --schedule="every 3 hours". Untuk deskripsi sintaksis schedule, lihat Memformat schedule.
  • DATASET_ID: set data target untuk konfigurasi transfer.
  • DESTINATION_KEY: ID resource kunci Cloud KMS —misalnya, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. CMEK hanya tersedia untuk transfer kueri terjadwal atau transfer Cloud Storage.
  • SERVICE_ACCOUNT: menentukan akun layanan yang akan digunakan dengan transfer ini.
  • RESOURCE_NAME: nama resource transfer (juga disebut sebagai konfigurasi transfer). Jika Anda tidak mengetahui nama resource transfer, temukan nama resource dengan: bq ls --transfer_config --transfer_location=location.

Contoh:

Perintah berikut memperbarui nama tampilan, set data target, jendela refresh, dan parameter untuk projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 transfer Google Ads:

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Perintah berikut memperbarui parameter dan jadwal untuk projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9 transfer Kueri Terjadwal:

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

Gunakan metode projects.transferConfigs.patch dan berikan nama resource transfer menggunakan parameter transferConfig.name. Jika Anda tidak mengetahui nama resource transfer, temukan nama resource dengan: bq ls --transfer_config --transfer_location=location. Anda juga dapat memanggil metode berikut dan memberikan project ID menggunakan parameter parent untuk mencantumkan semua transfer: projects.locations.transferConfigs.list.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
new_display_name = "My Transfer Config"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)
transfer_config.display_name = new_display_name

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["display_name"]),
    }
)

print(f"Updated config: '{transfer_config.name}'")
print(f"New display name: '{transfer_config.display_name}'")

Perbarui kredensial

Transfer menggunakan kredensial pengguna yang membuatnya. Jika perlu mengubah pengguna yang terkait dengan konfigurasi transfer, Anda dapat memperbarui kredensial transfer. Hal ini berguna jika pengguna yang membuat transfer tidak lagi bekerja di organisasi Anda.

Untuk memperbarui kredensial transfer:

Konsol

  1. Di konsol Google Cloud, login sebagai pengguna yang ingin Anda transfer kepemilikannya.

  2. Buka halaman Transfer data.

    Buka Data transfers

  3. Klik transfer di daftar transfer data.

  4. Klik menu MORE, lalu pilih Refresh credentials.

  5. Klik Izinkan untuk memberikan izin ke BigQuery Data Transfer Service guna melihat data pelaporan dan mengakses serta mengelola data di BigQuery.

bq

Masukkan perintah bq update, berikan nama resource konfigurasi transfer menggunakan flag --transfer_config, dan berikan flag --update_credentials.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

Ganti kode berikut:

  • boolean adalah nilai boolean yang menunjukkan apakah kredensial harus diperbarui untuk konfigurasi transfer.
  • resource_name adalah nama resource transfer (juga disebut sebagai konfigurasi transfer). Jika Anda tidak mengetahui nama resource transfer, temukan nama resource dengan: bq ls --transfer_config --transfer_location=location.

Contoh:

Masukkan perintah berikut untuk memperbarui kredensial untuk transfer Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Gunakan metode projects.transferConfigs.patch dan berikan parameter authorizationCode dan updateMask.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["service_account_name"]),
        "service_account_name": service_account_name,
    }
)

print("Updated config: '{}'".format(transfer_config.name))

Menonaktifkan transfer

Jika Anda menonaktifkan transfer, disabled akan ditambahkan ke nama transfer. Saat transfer dinonaktifkan, tidak ada operasi transfer baru yang dijadwalkan, dan pengisian ulang baru tidak diizinkan. Setiap transfer yang sedang berjalan akan selesai.

Menonaktifkan transfer tidak akan menghapus data apa pun yang telah ditransfer ke BigQuery. Data yang sebelumnya ditransfer akan dikenai biaya penyimpanan BigQuery standar hingga Anda menghapus set data atau menghapus tabel.

Untuk menonaktifkan transfer:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Transfers.

  3. Di halaman Transfers, klik transfer dalam daftar yang ingin dinonaktifkan.

  4. Klik DISABLE. Untuk mengaktifkan kembali transfer, klik ENABLE.

bq

Penonaktifan transfer tidak didukung oleh CLI.

API

Gunakan metode projects.locations.transferConfigs.patch dan tetapkan disabled ke true di resource projects.locations.transferConfig.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Untuk mengaktifkan kembali transfer:

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Menghapus transfer

Saat transfer dihapus, tidak ada operasi transfer baru yang dijadwalkan. Setiap transfer yang sedang berlangsung akan dihentikan.

Menghapus transfer tidak akan menghapus data yang telah ditransfer ke BigQuery. Data yang sebelumnya ditransfer akan dikenai biaya penyimpanan BigQuery standar hingga Anda menghapus set data atau menghapus tabel.

Untuk menghapus transfer:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Transfers.

  3. Di halaman Transfers, klik transfer dalam daftar yang ingin dihapus.

  4. Klik DELETE. Sebagai langkah keamanan, Anda harus mengetik kata "delete" ke dalam kotak untuk mengonfirmasi niat Anda.

bq

Masukkan perintah bq rm dan masukkan nama resource konfigurasi transfer. Anda dapat menggunakan flag -f untuk menghapus konfigurasi transfer tanpa konfirmasi.

bq rm \
-f \
--transfer_config \
resource_name

Dengan keterangan:

Misalnya, masukkan perintah berikut untuk menghapus konfigurasi transfer projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Gunakan metode projects.locations.transferConfigs.delete dan berikan resource yang akan dihapus menggunakan parameter name.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.DeleteTransferConfigRequest;
import java.io.IOException;

// Sample to delete a transfer config
public class DeleteTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    String configId = "MY_CONFIG_ID";
    deleteTransferConfig(configId);
  }

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + ex.toString());
    }
  }
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
try:
    transfer_client.delete_transfer_config(name=transfer_config_name)
except google.api_core.exceptions.NotFound:
    print("Transfer config not found.")
else:
    print(f"Deleted transfer config: {transfer_config_name}")

Memicu transfer secara manual

Anda dapat memicu transfer secara manual, yang juga disebut operasi pengisian ulang, untuk memuat file data tambahan di luar transfer yang dijadwalkan secara otomatis. Dengan sumber data yang mendukung parameter runtime, Anda juga dapat memicu transfer secara manual dengan menentukan tanggal atau rentang waktu untuk memuat data terdahulu.

Anda dapat memulai pengisian ulang data secara manual kapan saja. Selain batas sumber, BigQuery Data Transfer Service mendukung maksimum 180 hari per permintaan pengisian ulang. Permintaan pengisian ulang simultan tidak didukung.

Untuk mengetahui informasi tentang jumlah data yang tersedia untuk pengisian ulang, lihat panduan transfer untuk sumber data Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan dalam mengubah transfer, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Memicu transfer atau pengisian ulang secara manual

Anda dapat memicu proses transfer atau pengisian ulang secara manual dengan metode berikut:

  • Pilih transfer yang dijalankan menggunakan Google Cloud Console, lalu klik Run transfer now atau Schedule backfill.
  • Menggunakan perintah bq mk –transfer run dengan alat command line bq
  • Panggil metode API projects.locations.transferConfigs.startManualRuns method.

Untuk petunjuk terperinci tentang setiap metode, pilih tab yang sesuai:

Konsol

  1. Di konsol Google Cloud, buka halaman Data transfers.

    Buka Data transfers

  2. Pilih transfer Anda dari daftar.

  3. Klik Run transfer now atau Schedule backfill. Hanya satu opsi yang tersedia, bergantung pada jenis konfigurasi transfer.

    • Jika Anda mengeklik Run transfer now, pilih Run one time transfer atau Run for specific date jika berlaku. Jika Anda memilih Run for specific date, pilih tanggal dan waktu tertentu:

      Jalankan transfer sekarang

    • Jika Anda mengeklik Schedule backfill, pilih Run one time transfer atau Run for a date range jika berlaku. Jika Anda memilih Run for a date range, pilih tanggal dan waktu mulai dan akhir:

      Jadwalkan pengisian ulang

  4. Klik OK.

bq

Untuk memulai proses transfer secara manual, masukkan perintah bq mk dengan tanda --transfer_run:

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

Ganti kode berikut:

  • RUN_TIME adalah stempel waktu yang menentukan tanggal transfer sebelumnya. Gunakan stempel waktu yang diakhiri dengan Z atau berisi offset zona waktu yang valid—misalnya, 2022-08-19T12:11:35.00Z atau 2022-05-25T00:00:00+00:00.
    • Jika transfer Anda tidak memiliki parameter runtime, atau Anda hanya ingin memicu transfer sekarang tanpa menentukan transfer sebelumnya, masukkan waktu saat ini di kolom ini.
  • RESOURCE_NAME adalah nama resource yang tercantum di konfigurasi transfer Anda—misalnya, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Untuk memulai proses transfer secara manual untuk rentang tanggal, masukkan perintah bq mk dengan tanda --transfer_run bersama dengan rentang tanggal:

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

Ganti kode berikut:

  • START_TIME dan END_TIME adalah stempel waktu yang diakhiri dengan Z atau berisi offset zona waktu yang valid. Nilai ini menentukan rentang waktu yang berisi transfer sebelumnya yang ingin Anda isi ulang, misalnya, 2022-08-19T12:11:35.00Z atau 2022-05-25T00:00:00+00:00
  • RESOURCE_NAME adalah nama resource yang tercantum pada konfigurasi transfer Anda—misalnya, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Untuk memulai proses transfer secara manual, gunakan metode projects.locations.transferConfigs.startManualRuns dan berikan nama resource konfigurasi transfer menggunakan parameter induk. Untuk menemukan nama resource konfigurasi transfer, lihat Mendapatkan detail transfer

  "requestedRunTime": "RUN_TIME"

Ganti kode berikut:

  • RUN_TIME adalah stempel waktu yang menentukan tanggal transfer sebelumnya. Gunakan stempel waktu yang diakhiri dengan Z atau berisi offset zona waktu yang valid—misalnya, 2022-08-19T12:11:35.00Z atau 2022-05-25T00:00:00+00:00.
    • Jika transfer Anda tidak memiliki parameter runtime, atau Anda hanya ingin memicu transfer sekarang tanpa menentukan transfer sebelumnya, masukkan waktu saat ini di kolom ini.

Untuk memulai proses transfer secara manual untuk rentang tanggal, berikan rentang tanggal:

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

Ganti kode berikut:

  • START_TIME dan END_TIME adalah stempel waktu yang diakhiri dengan Z atau berisi offset zona waktu yang valid. Nilai ini menentukan rentang waktu yang berisi transfer sebelumnya yang ingin Anda isi ulang, misalnya, 2022-08-19T12:11:35.00Z atau 2022-05-25T00:00:00+00:00

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

# Handle the response
print("Started manual transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

Logging dan pemantauan

BigQuery Data Transfer Service mengekspor log dan metrik ke Cloud Monitoring dan Cloud Logging yang memberikan kemampuan observasi ke dalam transfer Anda. Anda dapat menggunakan Monitoring untuk menyiapkan dasbor guna memantau transfer, mengevaluasi performa transfer, dan melihat pesan error untuk memecahkan masalah kegagalan transfer. Anda dapat menggunakan Logging untuk melihat log yang terkait dengan pengoperasian transfer atau konfigurasi transfer.

Anda juga dapat melihat log audit yang tersedia untuk BigQuery Data Transfer Service untuk log aktivitas transfer dan akses data.