Menganalisis tabel objek menggunakan fungsi jarak jauh
Dokumen ini menjelaskan cara menganalisis data tidak terstruktur dalam tabel objek menggunakan fungsi jarak jauh.
Ringkasan
Anda dapat menganalisis data tidak terstruktur yang direpresentasikan oleh tabel objek menggunakan fungsi jarak jauh. Dengan fungsi jarak jauh, Anda dapat memanggil fungsi yang berjalan di fungsi Cloud Run atau Cloud Run, yang dapat diprogram untuk mengakses resource seperti:
- Model AI terlatih dari Google, termasuk Cloud Vision API dan Document AI.
- Library open source seperti Apache Tika.
- Model kustom Anda sendiri.
Untuk menganalisis data tabel objek menggunakan fungsi jarak jauh, Anda harus membuat dan meneruskan URL yang ditandatangani untuk objek dalam tabel objek saat memanggil fungsi jarak jauh. URL yang ditandatangani ini yang memberikan akses fungsi jarak jauh ke objek tersebut.
Izin yang diperlukan
Untuk membuat resource koneksi yang digunakan oleh fungsi jarak jauh, Anda memerlukan izin berikut:
bigquery.connections.create
bigquery.connections.get
bigquery.connections.list
bigquery.connections.update
bigquery.connections.use
bigquery.connections.delete
Untuk membuat fungsi jarak jauh, Anda memerlukan izin yang terkait dengan peran Developer Cloud Functions atau Developer Cloud Run.
Untuk memanggil fungsi jarak jauh, Anda memerlukan izin yang dijelaskan dalam Fungsi jarak jauh.
Untuk menganalisis tabel objek dengan fungsi jarak jauh, Anda memerlukan izin
bigquery.tables.getData
pada tabel objek.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection API, Cloud Run functions APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection API, Cloud Run functions APIs.
- Pastikan administrator BigQuery Anda telah membuat koneksi dan menyiapkan akses ke Cloud Storage.
Membuat fungsi jarak jauh
Untuk petunjuk umum tentang cara membuat fungsi jarak jauh, lihat Bekerja dengan fungsi jarak jauh.
Saat membuat fungsi jarak jauh untuk menganalisis data tabel objek, Anda harus
meneruskan URL yang ditandatangani
yang telah dihasilkan untuk objek dalam tabel objek. Anda dapat melakukannya
menggunakan parameter input dengan jenis data STRING
. URL yang ditandatangani
tersedia untuk fungsi jarak jauh sebagai data input di
kolom calls
dari permintaan POST
HTTP.
Contoh permintaan adalah:
{
// Other fields omitted.
"calls": [
["https://storage.googleapis.com/mybucket/1.pdf?X-Goog-SignedHeaders=abcd"],
["https://storage.googleapis.com/mybucket/2.pdf?X-Goog-SignedHeaders=wxyz"]
]
}
Anda dapat membaca objek dalam fungsi jarak jauh menggunakan metode yang membuat
permintaan GET
HTTP ke URL yang ditandatangani. Fungsi jarak jauh dapat mengakses
objek karena URL yang ditandatangani berisi informasi autentikasi dalam
string kuerinya.
Saat Anda menentukan
pernyataan CREATE FUNCTION
untuk fungsi jarak jauh, sebaiknya setel opsi max_batching_rows
ke 1 untuk
menghindari waktu tunggu habis fungsi Cloud Run
dan tingkatkan paralelisme pemrosesan.
Contoh
Contoh kode Python fungsi Cloud Run berikut membaca objek penyimpanan dan menampilkan panjang kontennya ke BigQuery:
import functions_framework
import json
import urllib.request
@functions_framework.http
def object_length(request):
calls = request.get_json()['calls']
replies = []
for call in calls:
object_content = urllib.request.urlopen(call[0]).read()
replies.append(len(object_content))
return json.dumps({'replies': replies})
Setelah di-deploy, fungsi ini akan memiliki endpoint yang mirip dengan
https://us-central1-myproject.cloudfunctions.net/object_length
.
Contoh berikut menunjukkan cara membuat fungsi jarak jauh BigQuery berdasarkan fungsi Cloud Run Functions ini:
CREATE FUNCTION mydataset.object_length(signed_url STRING) RETURNS INT64 REMOTE WITH CONNECTION `us.myconnection` OPTIONS( endpoint = "https://us-central1-myproject.cloudfunctions.net/object_length", max_batching_rows = 1 );
Untuk panduan langkah demi langkah, lihat Tutorial: Menganalisis tabel objek dengan fungsi jarak jauh.
Memanggil fungsi jarak jauh
Untuk memanggil fungsi jarak jauh pada data tabel objek, rujuk fungsi
jarak jauh dalam
select_list
kueri, lalu panggil
EXTERNAL_OBJECT_TRANSFORM
dalam
klausa FROM
untuk menghasilkan URL yang ditandatangani bagi objek.
Contoh berikut menunjukkan sintaksis pernyataan standar:
SELECT uri, function_name(signed_url) AS function_output FROM EXTERNAL_OBJECT_TRANSFORM(TABLE my_dataset.object_table, ["SIGNED_URL"]) LIMIT 10000;
Contoh berikut menunjukkan cara memproses hanya sebagian konten tabel objek dengan fungsi jarak jauh:
SELECT uri, function_name(signed_url) AS function_output FROM EXTERNAL_OBJECT_TRANSFORM(TABLE my_dataset.object_table, ["SIGNED_URL"]) WHERE content_type = "application/pdf";
Langkah berikutnya
Pelajari cara menjalankan inferensi pada tabel objek gambar.