Membuat tabel eksternal Google Drive
Dokumen ini menjelaskan cara membuat tabel eksternal berdasarkan data yang disimpan di Google Drive.
BigQuery mendukung tabel eksternal baik pada file Drive pribadi maupun file bersama. Untuk informasi selengkapnya tentang Drive, lihat Pelatihan dan bantuan Drive.
Anda dapat membuat tabel eksternal di atas file di Drive yang memiliki format berikut:
- Nilai yang dipisahkan koma (CSV)
- JSON yang dibatasi baris baru
- Avro
- Google Spreadsheet
Sebelum memulai
Sebelum membuat tabel eksternal, kumpulkan beberapa informasi dan pastikan Anda memiliki izin untuk membuat tabel tersebut.
Mengambil URI Drive
Guna membuat tabel eksternal untuk sumber data Google Drive, Anda harus memberikan URI Drive. Anda dapat mengambil URI Drive langsung dari URL data Drive:
Format URI
https://docs.google.com/spreadsheets/d/FILE_ID
atau
https://drive.google.com/open?id=FILE_ID
dengan FILE_ID
adalah ID alfanumerik untuk
file Drive Anda.
Mengaktifkan akses Drive
Perlu cakupan OAuth tambahan untuk mengakses data yang dihosting dalam Drive. Meskipun tidak diaktifkan secara default, alat ini dapat disertakan dalam Google Cloud Console, di alat command line bq, atau melalui API melalui mekanisme berikut:
Konsol
Ikuti langkah-langkah autentikasi berbasis web saat membuat tabel permanen di Konsol Google Cloud. Saat diminta, klik Izinkan untuk memberi BigQuery Client Tools akses ke Drive.
gcloud
Untuk mengaktifkan akses Drive:
Masukkan perintah berikut untuk memastikan Anda memiliki Google Cloud CLI versi terbaru.
gcloud components update
Masukkan perintah berikut untuk melakukan autentikasi dengan Drive.
gcloud auth login --enable-gdrive-access
API
Jika Anda menggunakan BigQuery API, minta cakupan OAuth untuk Drive selain cakupan untuk BigQuery.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Peran yang diperlukan
Untuk membuat tabel eksternal, Anda memerlukan izin bigquery.tables.create
Identity and Access Management (IAM) BigQuery.
Setiap peran Identity and Access Management yang telah ditetapkan berikut mencakup izin ini:
- BigQuery Data Editor (
roles/bigquery.dataEditor
) - BigQuery Data Owner (
roles/bigquery.dataOwner
) - BigQuery Admin (
roles/bigquery.admin
)
Jika Anda bukan akun utama dI salah satu peran ini, minta administrator untuk memberi Anda akses atau membuat tabel eksternal.
Untuk mengetahui informasi lebih lanjut tentang peran dan izin Identity and Access Management di BigQuery, lihat Peran dan izin yang telah ditetapkan sebelumnya.
Membuat tabel eksternal
Anda dapat membuat tabel permanen yang ditautkan ke sumber data eksternal dengan:
- Menggunakan konsol Google Cloud
- Menggunakan perintah
mk
alat command line bq - Membuat
ExternalDataConfiguration
saat Anda menggunakan metode APItables.insert
- Menggunakan library klien
Untuk membuat tabel eksternal:
Konsol
- Di konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan project Anda dan pilih set data.
Luaskan opsi
Actions dan klik Open.Di panel detail, klik Create table
.Di halaman Buat Tabel, di bagian Sumber:
Untuk Buat tabel dari, pilih Drive.
Di kolom Pilih URI Drive, masukkan URI Drive. Perhatikan bahwa karakter pengganti tidak didukung untuk URI Drive.
Untuk File format, pilih format data. Format yang valid untuk data Drive meliputi:
- Nilai yang dipisahkan koma (CSV)
- JSON yang dibatasi baris baru
- Avro
- Spreadsheet
(Opsional) Jika Anda memilih Spreadsheet, di kotak Rentang sheet (Opsional), tentukan sheet dan rentang sel yang akan dikueri. Anda dapat menentukan nama sheet, atau menentukan
sheet_name!top_left_cell_id:bottom_right_cell_id
untuk rentang sel; misalnya, "Sheet1!A1:B20". Jika Sheet range tidak ditentukan, sheet pertama dalam file akan digunakan.Di halaman Buat Tabel, di bagian Sumber:
Untuk Nama set data, pilih set data yang sesuai, lalu di kolom Nama tabel, masukkan nama tabel yang Anda buat di BigQuery.
Pastikan Jenis tabel ditetapkan ke Tabel eksternal.
Di bagian Schema, masukkan definisi schema.
- Untuk file JSON atau CSV, Anda dapat mencentang opsi Deteksi otomatis untuk mengaktifkan deteksi otomatis skema. Auto-detect tidak tersedia untuk ekspor Datastore, ekspor Firestore, dan file Avro. Informasi skema untuk jenis file ini otomatis diambil dari data sumber yang mendeskripsikan sendiri.
- Masukkan informasi skema secara manual dengan:
- Mengaktifkan Edit sebagai text dan memasukkan skema tabel sebagai array JSON.
Catatan: Anda dapat melihat skema tabel yang ada dalam format
JSON dengan memasukkan perintah berikut di alat command line bq:
bq show --format=prettyjson DATASET.TABLE
. - Menggunakan Tambahkan kolom untuk memasukkan skema secara manual.
- Mengaktifkan Edit sebagai text dan memasukkan skema tabel sebagai array JSON.
Catatan: Anda dapat melihat skema tabel yang ada dalam format
JSON dengan memasukkan perintah berikut di alat command line bq:
Klik Buat tabel.
Jika perlu, pilih akun Anda, lalu klik Izinkan untuk memberi alat klien BigQuery akses ke Drive.
Kemudian, Anda dapat menjalankan kueri terhadap tabel seolah-olah tabel tersebut adalah tabel BigQuery standar, dengan tunduk pada batasan pada sumber data eksternal.
Setelah kueri selesai, Anda dapat mendownload hasilnya sebagai CSV atau JSON, menyimpan hasilnya sebagai tabel, atau menyimpan hasilnya ke Spreadsheet. Lihat Mendownload, menyimpan, dan mengekspor data untuk informasi selengkapnya.
bq
Anda dapat membuat tabel di alat command line bq menggunakan perintah bq mk
. Saat menggunakan
alat command line bq untuk membuat tabel yang ditautkan ke sumber data eksternal, Anda dapat
mengidentifikasi skema tabel menggunakan:
- File definisi tabel (disimpan di komputer lokal Anda)
- Definisi skema inline
- File skema JSON (disimpan di komputer lokal Anda)
Untuk membuat tabel permanen yang ditautkan ke sumber data Drive Anda menggunakan file definisi tabel, masukkan perintah berikut.
bq mk \ --external_table_definition=DEFINITION_FILE \ DATASET.TABLE
Dengan keterangan:
DEFINITION_FILE
adalah jalur ke file definisi tabel di mesin lokal Anda.DATASET
adalah nama set data yang berisi tabel.TABLE
adalah nama tabel yang Anda buat.
Misalnya, perintah berikut akan membuat tabel permanen bernama mytable
menggunakan file definisi tabel bernama mytable_def
.
bq mk --external_table_definition=/tmp/mytable_def mydataset.mytable
Untuk membuat tabel permanen yang ditautkan ke sumber data eksternal menggunakan definisi skema inline, masukkan perintah berikut.
bq mk \ --external_table_definition=SCHEMA@SOURCE_FORMAT=DRIVE_URI \ DATASET.TABLE
Dengan keterangan:
SCHEMA
adalah definisi skema dalam formatFIELD:DATA_TYPE,FIELD:DATA_TYPE
.SOURCE_FORMAT
adalahCSV
,NEWLINE_DELIMITED_JSON
,AVRO
, atauGOOGLE_SHEETS
.DRIVE_URI
adalah URI Drive Anda.DATASET
adalah nama set data yang berisi tabel.TABLE
adalah nama tabel yang Anda buat.
Misalnya, perintah berikut akan membuat tabel permanen bernama sales
yang ditautkan ke file Spreadsheet yang disimpan di Drive dengan definisi skema berikut: Region:STRING,Quarter:STRING,Total_sales:INTEGER
.
bq mk \
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@GOOGLE_SHEETS=https://drive.google.com/open?id=1234_AbCD12abCd \
mydataset.sales
Untuk membuat tabel permanen yang ditautkan ke sumber data eksternal Anda menggunakan file skema JSON, masukkan perintah berikut.
bq mk \ --external_table_definition=SCHEMA_FILE@SOURCE_FORMAT=DRIVE_URI \ DATASET.TABLE
Dengan keterangan:
SCHEMA_FILE
adalah jalur ke file skema JSON di komputer lokal Anda.SOURCE_FORMAT
adalahCSV
,NEWLINE_DELIMITED_JSON
,AVRO
, atauGOOGLE_SHEETS
.DRIVE_URI
adalah URI Drive Anda.DATASET
adalah nama set data yang berisi tabel.TABLE
adalah nama tabel yang Anda buat.
Misalnya, perintah berikut akan membuat tabel bernama sales
yang ditautkan
ke file CSV yang disimpan di Drive menggunakan
file skema /tmp/sales_schema.json
.
bq mk \
--external_table_definition=/tmp/sales_schema.json@CSV=https://drive.google.com/open?id=1234_AbCD12abCd \
mydataset.sales
Setelah tabel permanen dibuat, Anda dapat menjalankan kueri terhadap tabel seolah-olah tabel tersebut adalah tabel BigQuery standar, dengan tunduk pada batasan sumber data eksternal.
Setelah kueri selesai, Anda dapat mendownload hasilnya sebagai CSV atau JSON, menyimpan hasilnya sebagai tabel, atau menyimpan hasilnya ke Spreadsheet. Lihat Mendownload, menyimpan, dan mengekspor data untuk informasi selengkapnya.
API
Buat ExternalDataConfiguration
saat Anda menggunakan metode
API tables.insert
. Tentukan properti schema
atau tetapkan properti autodetect
ke true
untuk mengaktifkan deteksi otomatis skema untuk sumber data yang didukung.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat kueri tabel eksternal
Untuk mengetahui informasi selengkapnya, lihat Membuat kueri data Drive.
Kolom semu _FILE_NAME
Tabel yang didasarkan pada sumber data eksternal menyediakan kolom semu bernama _FILE_NAME
. Kolom
ini berisi jalur yang sepenuhnya memenuhi syarat ke file yang memiliki baris tersebut. Kolom ini hanya tersedia untuk tabel yang mereferensikan data eksternal yang disimpan di Cloud Storage dan Google Drive.
Nama kolom _FILE_NAME
dicadangkan, yang berarti Anda tidak dapat membuat kolom dengan nama tersebut di tabel Anda.