Lihat konektor yang didukung untuk Integration Application.
Menyisipkan data ke BigQuery menggunakan tugas Untuk Setiap Paralel
Dalam tutorial ini, Anda akan membuat Integrasi Aplikasi dan sub-integrasi untuk memproses serangkaian data. Untuk setiap kumpulan data, integrasi utama memanggil sub-integrasi secara asinkron, yang mengambil data untuk setiap kumpulan data dan menyisipkannya sebagai baris dalam tabel di set data BigQuery.
Dalam tutorial ini, Anda akan menyelesaikan tugas-tugas berikut:
- Menyiapkan koneksi BigQuery
- Menyiapkan sub-integrasi
- Menyiapkan integrasi utama
- Menguji integrasi Anda
Sebelum memulai
- Pastikan Anda memiliki akses ke Application Integration.
-
Lakukan hal berikut di project Google Cloud Anda:
- Berikan peran berikut ke akun layanan yang ingin Anda gunakan untuk membuat koneksi:
roles/bigquery.dataEditor
roles/bigquery.readSessionUser
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
- Aktifkan layanan berikut:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
Jika layanan ini belum diaktifkan untuk project Anda sebelumnya, Anda akan diminta untuk mengaktifkannya saat membuat koneksi di halaman Create Connection.
- Berikan peran berikut ke akun layanan yang ingin Anda gunakan untuk membuat koneksi:
Menyiapkan koneksi BigQuery
Mulailah dengan membuat set data dan tabel BigQuery yang akan digunakan dalam tutorial ini. Setelah membuat set data dan tabel, buat koneksi BigQuery. Anda akan menggunakan koneksi ini dalam integrasi nanti dalam tutorial ini.
Menyiapkan set data dan tabel BigQuery
Untuk menyiapkan set data dan tabel BigQuery, lakukan langkah-langkah berikut:
- Di halaman Cloud console, pilih project Google Cloud Anda.
- Untuk meluncurkan sesi Cloud Shell dari konsol Google Cloud, klik ikon Activate Cloud Shell
di Cloud console. Tindakan ini akan meluncurkan sesi di panel bawah Konsol Google Cloud.
-
Untuk mengaktifkan BigQuery API, masukkan perintah berikut di terminal Cloud Shell:
Dalam perintah ini, ganti:export PROJECT_ID=project_id export REGION=region gcloud services enable --project "${PROJECT_ID}" \ bigquery.googleapis.com \ bigquerystorage.googleapis.com
project_id
dengan project ID Google Cloud project Anda.region
dengan region yang ingin Anda gunakan untuk membuat set data BigQuery.
- Untuk membuat set data BigQuery dengan nama
bq_tutorial
, masukkan perintah berikut di terminal Cloud Shell:bq --project_id ${PROJECT_ID} --location ${REGION} mk bq_tutorial
- Untuk membuat tabel BigQuery dengan nama
tutorial
, masukkan perintah berikut di terminal Cloud Shell:bq --project_id ${PROJECT_ID} \ query \ --nouse_legacy_sql \ 'create table bq_tutorial.tutorial ( unique_key STRING NOT NULL, created_date STRING, closed_date STRING, agency STRING, agency_name STRING, complaint_type STRING, descriptor STRING, location_type STRING, incident_zip STRING, incident_address STRING, street_name STRING, cross_street_1 STRING, cross_street_2 STRING, intersection_street_1 STRING, intersection_street_2 STRING, address_type STRING, city STRING, landmark STRING, facility_type STRING, status STRING, due_date STRING, resolution_action_updated_date STRING, community_board STRING, borough STRING, x_coordinate_state_plane STRING, y_coordinate_state_plane STRING, park_facility_name STRING, park_borough STRING, school_name STRING, school_number STRING, school_region STRING, school_code STRING, school_phone_number STRING, school_address STRING, school_city STRING, school_state STRING, school_zip STRING, school_not_found STRING, school_or_citywide_complaint STRING, vehicle_type STRING, taxi_company_borough STRING, taxi_pick_up_location STRING, bridge_highway_name STRING, bridge_highway_direction STRING, bridge_highway_segment STRING, road_ramp STRING, garage_lot_name STRING, ferry_direction STRING, ferry_terminal_name STRING, latitude STRING, longitude STRING, location STRING ) '
-
Verify that your BigQuery table is created.
- In the Cloud console page, click the Navigation menu.
- In the Analytics section, click BigQuery.
-
Expand your project and confirm that the
bq_tutorial
dataset is listed. -
Expand the bq_tutorial dataset and confirm that the
tutorial
table is listed. - Click the documents table to view the schema.
Create a BigQuery connection
Next, you'll create a BigQuery connection. A BigQuery connection lets you insert, read, update and delete rows in a BigQuery table and use the resulting output in an integration. After creating the BigQuery connection, you'll use this connection in an integration later in this tutorial to add rows to the BigQuery table.
To create a BigQuery connection, complete the following steps:
- In the Cloud console page, select your Google Cloud project.
- Open the connections page.
- Click + CREATE NEW to open the Create Connection page.
- Configure the connection:
- In the Create Connection section, complete the following:
- Connector: Select BigQuery from the drop down list of available Connectors.
- Connector version: Select the latest Connector version from the drop down list of available versions.
- In the Connection Name field, enter a name for the Connection instance. For this tutorial, enter connector-bq-tutorial.
- Optionally, add a Description of the connection instance.
- Service Account: Select a service account that has the required roles.
- Project ID: Enter the ID of the Google Cloud project where the BigQuery data resides.
- Dataset ID: Enter the ID of the BigQuery dataset that you want to use. For this tutorial, enter bq_tutorial.
- Optionally, click + ADD LABEL to add a label in the form of a key/value pair.
- Click Next.
- Location: Select a region from where the connection will run. Supported
regions for connectors include:
- Click Next.
For the list of all the supported regions, see Locations.
- Authentication: The BigQuery connection does not require authentication configuration. Click Next.
- Review: Review your connection's configuration details. In this section, the connection and authentication details of the new connection are displayed for your review.
- In the Create Connection section, complete the following:
- Click Create.
Set up a sub-integration
In this tutorial, the sub-integration takes each record sent to it by the main integration and inserts it as a row in the tutorial
table in the bq_tutorial
dataset.
Create a sub-integration
To create the sub-integration, complete the following steps:
- In the Google Cloud console, go to the Application Integration page.
- In the navigation menu, click Integrations. The Integrations page appears.
- Click Create integration.
- In the Create Integration dialog, do the following:
- Enter a name, for example, enter Process-each-record
- Optionally, enter a description. For example, enter API Trigger to process each record (sub-integration)
- Select the region where you want to create your integration.
- Click Create to open the integration editor.
Add an API Trigger
To add an API Trigger to the integration, do the following:
- In the integration editor, select Add a task/trigger > Triggers to display a list of available triggers.
- Drag the API Trigger element to the integration editor.
Add a Data Mapping task
To add a Data Mapping task in the integration, complete the following steps:
- Select +Add a task/trigger > Tasks in the integration editor to display the list of available tasks.
- Drag the Data Mapping element to the integration editor.
Configure the BigQuery connection
Now you are ready to use the BigQuery connection that you created earlier in the sub-integration. To configure the BigQuery connection in this integration, complete the following steps:
- Select +Add a task/trigger > Tasks in the integration editor to display the list of available tasks.
- Drag the Connectors element to the integration editor.
- Click the Connectors task element on the designer to view the task configuration pane.
- Click the edit icon on the right panel and update the Label to Insert row to BigQuery.
- Click Configure task.
The Configure connector task dialog appears.
- In the Configure connector task dialog, do the following:
- Select the connection region where you created your BigQuery connection.
- Select the BigQuery connection that you want to use. For this tutorial, select connector-bq-tutorial.
- Once a connection is chosen, the Type column appears. Select Entities and then tutorial from the list of available entities.
- Once a type is chosen, the Operation column appears. Select Create.
- Click Done to complete the connection configuration and close the dialog.
Connect the integration elements
Next, add edge connections to connect the API Trigger to the Data Mapping task and the Data Mapping task to the Connectors task. An edge connection is a connection between any two elements in an integration. For more information on edges and edge conditions, see Edges.
To add the edge connections, complete the following steps:
- Click the Fork control point at the bottom of the API Trigger element. Drag and drop the edge connection at the Join control point at the top of the Data Mapping element.
- Click the Fork control point at the bottom of the Data Mapping element. Drag and drop the edge connection at the Join control point at the top of the Connectors element.
Configure the Data Mapping task
To configure the Data Mapping task, complete the following steps:
- In the integration editor, click the Data Mapping task to view the task configuration pane.
- Click Open Data Mapping Editor.
- In the Data Mapping Editor, click Add to add a new variable.
- In the Create Variable dialog, enter the following information:
- Name: Enter record.
- Data Type: Select JSON.
-
Schema: Select Infer from a sample JSON payload. Enter the following sample JSON payload:
{ "unique_key":"304271", "created_date":"02/06/2007 12:00:00 AM", "closed_date":"03/01/2007 12:00:00 AM", "agency":"TLC", "agency_name":"Taxi and Limousine Commission", "complaint_type":"Taxi Complaint", "descriptor":"Driver Complaint", "location_type":"Street", "incident_zip":"10001", "incident_address":"", "street_name":"", "cross_street_1":"", "cross_street_2":"", "intersection_street_1":"WEST 29 STREET", "intersection_street_2":"7 AVENUE", "address_type":"INTERSECTION", "city":"NEW YORK", "landmark":"", "facility_type":"N/A", "status":"Closed", "due_date":"02/28/2007 12:00:00 AM", "resolution_action_updated_date":"03/01/2007 12:00:00 AM", "community_board":"05 MANHATTAN", "borough":"MANHATTAN", "x_coordinate_state_plane":"986215", "y_coordinate_state_plane":"211740", "park_facility_name":"", "park_borough":"MANHATTAN", "school_name":"", "school_number":"", "school_region":"", "school_code":"", "school_phone_number":"", "school_address":"", "school_city":"", "school_state":"", "school_zip":"", "school_not_found":"", "school_or_citywide_complaint":"", "vehicle_type":"", "taxi_company_borough":"", "taxi_pick_up_location":"Other", "bridge_highway_name":"", "bridge_highway_direction":"", "road_ramp":"", "bridge_highway_segment":"", "garage_lot_name":"", "ferry_direction":"", "ferry_terminal_name":"", "latitude":"40.74785373937869", "longitude":"-73.99290823133913", "location":"(40.74785373937869, -73.99290823133913)" }
- Klik Create.
- Setelah variabel dibuat, di Data Mapping Editor, selesaikan langkah-langkah berikut:
- Tarik variabel record baru ke kolom Input.
- Tarik variabel connectorInputPayload ke kolom Output.
- Tutup Editor Pemetaan Data untuk kembali ke editor integrasi.
Memublikasikan sub-integrasi
Untuk memublikasikan sub-integrasi, di editor integrasi, klik Publikasikan.
Menyiapkan integrasi utama
Di bagian ini, Anda akan menyiapkan integrasi utama, yang menggunakan tugas For Each Parallel untuk memproses setiap kumpulan data. Integrasi utama ini kemudian memanggil sub-integrasi sekali untuk setiap kumpulan data.
Membuat integrasi utama
Untuk membuat integrasi utama, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Integrasi Aplikasi.
- Di menu navigasi, klik Integrations. Halaman Integrations akan muncul.
- Klik Create integration.
- Pada dialog Create Integration, lakukan hal berikut:
- Masukkan nama, misalnya, masukkan process-records.
- Secara opsional, masukkan deskripsi. Misalnya, masukkan Pemicu API untuk memproses data (integrasi utama)
- Pilih region tempat Anda ingin membuat integrasi.
- Klik Buat untuk membuka editor integrasi.
Menambahkan Pemicu API
Untuk menambahkan Pemicu API ke integrasi, lakukan hal berikut:
- Di editor integrasi, pilih Tambahkan tugas/pemicu > Pemicu untuk menampilkan daftar pemicu yang tersedia.
- Tarik elemen Pemicu API ke editor integrasi.
Menambahkan tugas For Each Parallel
Untuk menambahkan tugas For Each Parallel dalam integrasi, selesaikan langkah-langkah berikut:
- Pilih +Tambahkan tugas/pemicu > Tugas di editor integrasi untuk menampilkan daftar tugas yang tersedia.
- Tarik elemen For Each Parallel ke editor integrasi.
Menghubungkan elemen integrasi
Selanjutnya, tambahkan koneksi edge untuk menghubungkan Pemicu API ke tugas For Each Parallel.
Untuk menambahkan koneksi edge, klik titik kontrol Fork di bagian bawah elemen Pemicu API. Tarik lalu lepas koneksi tepi di titik kontrol Gabung di bagian atas elemen tugas For Each Parallel.
Mengonfigurasi tugas For Each Parallel
Untuk mengonfigurasi tugas For Each Parallel, selesaikan langkah-langkah berikut:
- Di editor integrasi, klik tugas For Each Parallel untuk melihat panel konfigurasi tugas.
- Di bagian Array Selection > List to iterate, klik Add new variable untuk menambahkan variabel baru.
- Di dialog Create Variable, masukkan informasi berikut:
-
Nama: Masukkan
records
- Jenis Data: Pilih JSON.
-
Skema: Pilih Infer from a sample JSON payload. Masukkan contoh payload JSON berikut:
[{ "unique_key":"304271", "created_date":"02/06/2007 12:00:00 AM", "closed_date":"03/01/2007 12:00:00 AM", "agency":"TLC", "agency_name":"Taxi and Limousine Commission", "complaint_type":"Taxi Complaint", "descriptor":"Driver Complaint", "location_type":"Street", "incident_zip":"10001", "incident_address":"", "street_name":"", "cross_street_1":"", "cross_street_2":"", "intersection_street_1":"WEST 29 STREET", "intersection_street_2":"7 AVENUE", "address_type":"INTERSECTION", "city":"NEW YORK", "landmark":"", "facility_type":"N/A", "status":"Closed", "due_date":"02/28/2007 12:00:00 AM", "resolution_action_updated_date":"03/01/2007 12:00:00 AM", "community_board":"05 MANHATTAN", "borough":"MANHATTAN", "x_coordinate_state_plane":"986215", "y_coordinate_state_plane":"211740", "park_facility_name":"", "park_borough":"MANHATTAN", "school_name":"", "school_number":"", "school_region":"", "school_code":"", "school_phone_number":"", "school_address":"", "school_city":"", "school_state":"", "school_zip":"", "school_not_found":"", "school_or_citywide_complaint":"", "vehicle_type":"", "taxi_company_borough":"", "taxi_pick_up_location":"Other", "bridge_highway_name":"", "bridge_highway_direction":"", "road_ramp":"", "bridge_highway_segment":"", "garage_lot_name":"", "ferry_direction":"", "ferry_terminal_name":"", "latitude":"40.74785373937869", "longitude":"-73.99290823133913", "location":"(40.74785373937869, -73.99290823133913)" }]
-
Nama: Masukkan
- Klik Create.
- Di bagian Sub-integration Details, masukkan informasi berikut:
- ID Pemicu API: Pilih elemen Pemicu API di sub-integrasi. Misalnya, pilih Process-each-record_API_1.
- Strategi eksekusi: Pilih ASYNC.
- Pilih Jalankan satu integrasi.
- Di bagian Pada setiap eksekusi, untuk Tempat memetakan setiap elemen array, masukkan nama variabel dalam tugas pemetaan data di sub-integrasi. Dalam hal ini, masukkan record. Variabel sub-integrasi hanya dicantumkan untuk integrasi yang dipublikasikan. Jika variabel tidak tercantum, muat ulang halaman, karena perlu waktu beberapa saat agar variabel terlihat setelah sub-integrasi dipublikasikan.
Memublikasikan integrasi utama
Untuk memublikasikan integrasi utama, klik Publikasikan di editor integrasi.
Menguji integrasi Anda
Untuk menguji integrasi Anda, selesaikan langkah-langkah berikut:
- Download contoh data ke Cloud Shell Anda:
- Untuk meluncurkan sesi Cloud Shell dari konsol Google Cloud,
klik ikon
Activate Cloud Shell di Cloud console. Tindakan ini akan meluncurkan sesi di panel bawah konsol Google Cloud.
- Masukkan perintah berikut di terminal Cloud Shell:
wget https://raw.githubusercontent.com/GoogleCloudPlatform/application-integration-samples/main/assets/bq-sample-dataset.json
- Untuk memverifikasi bahwa data sampel telah didownload, masukkan perintah berikut di terminal Cloud Shell Anda:
File yang didownload tercantum di terminal Cloud Shell.ls -la bq-sample-dataset.json
- Untuk meluncurkan sesi Cloud Shell dari konsol Google Cloud,
klik ikon
- Untuk memilih tiga entri acak dari set data sampel dan menyimpannya dengan cara yang dapat Anda teruskan ke integrasi, masukkan perintah berikut di terminal Cloud Shell:
AUTH=$(gcloud auth print-access-token) export SAMPLE_DOCS=$(jq $(r=$((RANDOM % 1000)) ; echo ".[$r:$((r + 3))]") < bq-sample-dataset.json | jq -Rs '.') generate_post_data() { cat <<EOF { "triggerId": "api_trigger/process-records_API_1", "inputParameters": { "records": { "jsonValue": $SAMPLE_DOCS } } } EOF }
- Untuk memulai pengujian, masukkan perintah berikut di terminal Cloud Shell:
Dalam perintah ini, ganti:curl -X POST \ https://integrations.googleapis.com/v1/projects/project_id/locations/region/integrations/process-records:execute \ -H "Authorization: Bearer $AUTH" \ -H "Content-Type: application/json" \ -d "$(generate_post_data)"
project_id
dengan project ID Google Cloud project Anda.region
dengan region tempat Anda membuat integrasi.
- Untuk memverifikasi bahwa tabel BigQuery Anda sekarang berisi data ini, lakukan langkah-langkah berikut:
- Di halaman Cloud console, klik Navigation menu.
- Di bagian Analytics, klik BigQuery.
-
Luaskan project Anda dan klik set data
bq_tutorial
. -
Luaskan set data bq_tutorial, lalu klik tabel
tutorial
. - Klik tab Table Explorer untuk melihat data yang disisipkan.
Langkah selanjutnya
Coba buat integrasi dengan konektor lain. Untuk mengetahui daftar semua konektor yang didukung, lihat Referensi konektor.