Bagaimana Anda memeriksa file csv kosong atau tidak di php?

Sejujurnya, jika Anda tidak dapat mengulang melalui array, Anda mungkin belum boleh bermain-main dengan file - dan data CSV bisa menjadi jauh lebih rumit daripada sekadar "dipecah dengan koma". semua ini sah

"hello", "hello, world", "hello, ""world"""Dan berisi tiga bidang. hello hello, world hello, "world"Pemrosesan data CSV yang sederhana hanya dengan memisahkan koma akan kembali menggigit Anda nanti, dan sulit

Saya sarankan Anda mencoba menggunakan beberapa perangkat lunak pembacaan CSV yang ada, karena sudah mengetahui masalahnya. Saya menggunakan yang ini. Pembaca CSV Cepat[^]

Saat memuat data CSV dari Cloud Storage, Anda dapat memuat data ke tabel atau partisi baru, atau menambahkan atau menimpa tabel atau partisi yang ada. Saat data Anda dimuat ke BigQuery, data akan diubah menjadi format kolom untuk Kapasitor (format penyimpanan BigQuery)

Saat Anda memuat data dari Cloud Storage ke dalam tabel BigQuery, set data yang berisi tabel tersebut harus berada di lokasi regional atau multi-regional yang sama dengan bucket Cloud Storage

Untuk informasi tentang memuat data CSV dari file lokal, lihat

Cobalah sendiri

Jika Anda baru di Google Cloud, buat akun untuk mengevaluasi performa BigQuery dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan menerapkan beban kerja

Coba BigQuery gratis

Keterbatasan

Anda tunduk pada batasan berikut saat memuat data ke BigQuery dari bucket Cloud Storage

  • Jika lokasi set data Anda disetel ke nilai selain multi-region bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 2, maka bucket Cloud Storage harus berada di region yang sama atau berada di multi-region yang sama dengan set data
  • BigQuery tidak menjamin konsistensi data untuk sumber data eksternal. Perubahan pada data pokok saat kueri sedang berjalan dapat mengakibatkan perilaku yang tidak diharapkan
  • BigQuery tidak mendukung pembuatan versi objek Cloud Storage. Jika Anda menyertakan nomor pembuatan di URI Cloud Storage, tugas pemuatan akan gagal

Saat Anda memuat file CSV ke BigQuery, perhatikan hal berikut

  • File CSV tidak mendukung data bersarang atau berulang
  • Hapus karakter byte order mark (BOM). Mereka mungkin menyebabkan masalah yang tidak terduga
  • Jika Anda menggunakan kompresi gzip, BigQuery tidak dapat membaca data secara paralel. Memuat data CSV terkompresi ke BigQuery lebih lambat daripada memuat data yang tidak terkompresi. Melihat
  • Anda tidak dapat menyertakan file terkompresi dan tidak terkompresi dalam tugas pemuatan yang sama
  • Ukuran maksimum untuk file gzip adalah 4 GB
  • Saat Anda memuat data CSV atau JSON, nilai dalam kolom bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 harus menggunakan pemisah tanda hubung ( bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4) dan tanggal harus dalam format berikut. bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5 (tahun-bulan-hari)
  • Saat Anda memuat data JSON atau CSV, nilai dalam kolom bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6 harus menggunakan pemisah tanda hubung ( bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4) untuk bagian tanggal dari stempel waktu, dan tanggal harus dalam format berikut. bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5 (tahun-bulan-hari). Bagian bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 (jam-menit-detik) dari stempel waktu harus menggunakan pemisah titik dua ( bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0)

Sebelum kamu memulai

Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini, dan membuat kumpulan data untuk menyimpan data Anda

Izin yang diperlukan

Untuk memuat data ke BigQuery, Anda memerlukan izin IAM untuk menjalankan tugas pemuatan dan memuat data ke dalam tabel dan partisi BigQuery. Jika memuat data dari Cloud Storage, Anda juga memerlukan izin IAM untuk mengakses bucket yang berisi data Anda

Izin untuk memuat data ke BigQuery

Untuk memuat data ke dalam tabel atau partisi BigQuery baru atau menambahkan atau menimpa tabel atau partisi yang ada, Anda memerlukan izin IAM berikut

  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _1
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _2
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _3
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _4

Setiap peran IAM standar berikut mencakup izin yang Anda perlukan untuk memuat data ke dalam tabel atau partisi BigQuery

  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _5
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _6
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7 (termasuk izin bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4)
  • bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 (termasuk izin bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4)
  • bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 1 (termasuk izin bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4)

Selain itu, jika Anda memiliki izin bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _3, Anda dapat membuat dan memperbarui tabel menggunakan tugas muat di kumpulan data yang Anda buat

Untuk informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin yang telah ditentukan sebelumnya

Izin untuk memuat data dari Cloud Storage

Untuk memuat data dari bucket Cloud Storage, Anda memerlukan izin IAM berikut

  • bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4
  • bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5
  • bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6 (diperlukan jika Anda menggunakan URI )

Buat kumpulan data

Buat set data BigQuery untuk menyimpan data Anda

Memuat data CSV ke dalam tabel

Untuk memuat data CSV dari Cloud Storage ke tabel BigQuery baru, pilih salah satu opsi berikut

Menghibur

Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Editor Cloud Shell, klik Pandu saya

Bimbing saya

  1. Di Google Cloud Console, buka halaman BigQuery

    Buka BigQuery

  2. Di panel Penjelajah, perluas proyek Anda, lalu pilih kumpulan data
  3. Di bagian Dataset info, klik add_box Create table.
  4. Di panel Buat tabel, tentukan detail berikut
    1. Di bagian Sumber, pilih Google Cloud Storage di daftar Buat tabel dari. Kemudian, lakukan hal berikut
      1. Pilih file dari bucket Cloud Storage, atau masukkan. Anda tidak dapat menyertakan beberapa URI di Google Cloud Console, tetapi didukung. Bucket Cloud Storage harus berada di lokasi yang sama dengan set data yang berisi tabel yang ingin Anda buat, tambahkan, atau timpa. bq show --format=prettyjson dataset.table
      2. Opsi 2. Klik add_box Tambahkan bidang dan masukkan skema tabel. Tentukan Nama setiap bidang, , dan.
      3. Opsional. Tentukan pengaturan Partisi dan cluster. Untuk informasi selengkapnya, lihat Membuat tabel berpartisi dan Membuat dan menggunakan tabel berkerumun
      4. Klik Opsi lanjutan dan lakukan hal berikut
        • Untuk preferensi Tulis, tinggalkan Tulis jika dipilih kosong. Opsi ini membuat tabel baru dan memuat data Anda ke dalamnya
        • Untuk Jumlah kesalahan yang diizinkan, terima nilai default bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 atau masukkan jumlah maksimum baris berisi kesalahan yang dapat diabaikan. Jika jumlah baris dengan kesalahan melebihi nilai ini, pekerjaan akan menghasilkan pesan bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 8 dan gagal. Opsi ini hanya berlaku untuk file CSV dan JSON
        • Jika Anda ingin mengabaikan nilai dalam baris yang tidak ada dalam skema tabel, pilih Nilai tidak diketahui
        • Untuk pembatas Bidang, pilih karakter yang memisahkan sel di file CSV Anda. Koma, Tab, Pipa, atau Khusus. Jika Anda memilih Khusus, masukkan pembatas di kotak Pembatas bidang khusus. Nilai defaultnya adalah Koma
        • Untuk melewati baris Header, masukkan jumlah baris header yang akan dilewati di bagian atas file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7
        • Untuk baris baru yang dikutip, centang Izinkan baris baru yang dikutip untuk mengizinkan bagian data yang dikutip yang berisi karakter baris baru dalam file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
        • Untuk baris bergerigi, centang Izinkan baris bergerigi untuk menerima baris dalam file CSV yang tidak ada di belakang kolom opsional. Nilai yang hilang diperlakukan sebagai nol. Jika tidak dicentang, catatan dengan kolom akhir yang hilang dianggap sebagai catatan buruk, dan jika ada terlalu banyak catatan buruk, kesalahan yang tidak valid dikembalikan dalam hasil pekerjaan. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
        • Untuk Enkripsi, klik Kunci yang dikelola pelanggan untuk menggunakan kunci Layanan Manajemen Kunci Cloud. Jika Anda meninggalkan setelan kunci yang dikelola Google, BigQuery akan mengenkripsi data nonaktif
      5. Klik Buat tabel
    Catatan. Saat Anda memuat data ke tabel kosong menggunakan Google Cloud Console, Anda tidak dapat menambahkan label, deskripsi, masa berlaku tabel, atau masa berlaku partisi.

    Setelah tabel dibuat, Anda dapat memperbarui masa berlaku, deskripsi, dan label tabel, tetapi Anda tidak dapat menambahkan masa berlaku partisi setelah tabel dibuat menggunakan Google Cloud Console. Untuk informasi selengkapnya, lihat Mengelola tabel

SQL

Menggunakan. Contoh berikut memuat file CSV ke tabel baru bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3

  1. Di Google Cloud Console, buka halaman BigQuery

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut

    LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']);
  3. Klik play_circle Lari.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat

bq

Gunakan perintah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4, tentukan bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5 menggunakan bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6, dan sertakan. Anda dapat menyertakan satu URI, daftar URI yang dipisahkan koma, atau URI yang berisi a. Sediakan inline skema, dalam file definisi skema, atau gunakan deteksi otomatis skema. Jika Anda tidak menentukan skema, dan bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0, dan tabel tujuan ada, maka skema tabel tujuan akan digunakan

(Opsional) Berikan bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 dan tetapkan nilainya ke lokasi Anda

Bendera opsional lainnya termasuk

  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _0. Jika ditentukan, terima baris dalam file CSV yang tidak ada di kolom opsional. Nilai yang hilang diperlakukan sebagai nol. Jika tidak dicentang, catatan dengan kolom akhir yang hilang dianggap sebagai catatan buruk, dan jika ada terlalu banyak catatan buruk, kesalahan yang tidak valid dikembalikan dalam hasil pekerjaan. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _2. Jika ditentukan, izinkan bagian data yang dikutip yang berisi karakter baris baru dalam file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _4. Karakter yang menunjukkan batas antar kolom dalam data. Baik bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv 5 dan bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv 6 diizinkan untuk pembatas tab. Nilai defaultnya adalah bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _7
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _8. String khusus opsional yang mewakili nilai NULL dalam data CSV
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _9. Menentukan jumlah baris header yang akan dilewati di bagian atas file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _1. Karakter kutipan yang akan digunakan untuk mengapit rekaman. Nilai defaultnya adalah bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING 2. Untuk menunjukkan tidak ada karakter kutipan, gunakan string kosong
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _3. Bilangan bulat yang menentukan jumlah maksimum catatan buruk yang diizinkan sebelum seluruh pekerjaan gagal. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7. Paling banyak, lima kesalahan jenis apa pun dikembalikan terlepas dari nilai bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING 3
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _6. Jika ditentukan, izinkan dan abaikan nilai tambahan yang tidak dikenal dalam data CSV atau JSON
  • bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7. Jika ditentukan, aktifkan deteksi otomatis skema untuk data CSV dan JSON
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _8. Mengaktifkan partisi berbasis waktu di atas meja dan menyetel jenis partisi. Nilai yang mungkin adalah bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _9, bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv 0, bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv 1, dan bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv 2. Bendera ini opsional saat Anda membuat tabel yang dipartisi pada kolom bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3, bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv 4, atau bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6. Tipe partisi default untuk partisi berbasis waktu adalah bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv 0. Anda tidak dapat mengubah spesifikasi partisi pada tabel yang sudah ada
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv _7. Bilangan bulat yang menentukan (dalam detik) kapan partisi berbasis waktu harus dihapus. Waktu kedaluwarsa mengevaluasi tanggal UTC partisi ditambah nilai bilangan bulat
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv _8. Kolom bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _3 atau bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6 digunakan untuk membuat tabel terpartisi. Jika partisi berbasis waktu diaktifkan tanpa nilai ini, tabel partisi waktu penyerapan akan dibuat
  • LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _01. Jika diaktifkan, opsi ini mengharuskan pengguna untuk menyertakan klausa LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 02 yang menentukan partisi untuk kueri. Membutuhkan filter partisi dapat mengurangi biaya dan meningkatkan kinerja. Untuk informasi lebih lanjut, lihat
  • LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _03. Daftar yang dipisahkan koma hingga empat nama kolom yang digunakan untuk membuat tabel berkerumun
  • LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _04. Kunci Cloud KMS untuk enkripsi data tabel

    Untuk informasi lebih lanjut tentang perintah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _4, lihat

    Untuk informasi lebih lanjut tentang tabel yang dipartisi, lihat

    • Membuat tabel yang dipartisi

    Untuk informasi lebih lanjut tentang tabel berkerumun, lihat

    • Membuat dan menggunakan tabel berkerumun

    Untuk informasi selengkapnya tentang enkripsi tabel, lihat

    • Melindungi data dengan kunci Cloud KMS

Untuk memuat data CSV ke BigQuery, masukkan perintah berikut

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema

Di mana

  • lokasi adalah lokasi Anda. Bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 adalah opsional. Misalnya, jika Anda menggunakan BigQuery di wilayah Tokyo, Anda dapat menyetel nilai tanda ke LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 07. Anda dapat menetapkan nilai default untuk lokasi menggunakan
  • formatnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5
  • dataset adalah dataset yang sudah ada
  • table adalah nama tabel tempat Anda memuat data
  • path_to_source adalah daftar URI yang sepenuhnya memenuhi syarat atau dipisahkan koma. juga didukung
  • skema adalah skema yang valid. Skema dapat berupa file JSON lokal, atau dapat diketik sebaris sebagai bagian dari perintah. Anda juga dapat menggunakan flag bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 alih-alih menyediakan definisi skema

Contoh

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan dalam file skema lokal bernama LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13

bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan dalam file skema lokal bernama LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13. File CSV menyertakan dua baris header. Jika bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _9 tidak ditentukan, perilaku default adalah menganggap file tidak berisi header

bq load \ --source_format=CSV \ --skip_leading_rows=2 mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke tabel terpartisi waktu konsumsi bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan dalam file skema lokal bernama LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13

bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke dalam tabel terpartisi baru bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Tabel dipartisi pada kolom LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _26. Skema didefinisikan dalam file skema lokal bernama LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13

bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema terdeteksi secara otomatis

bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan sebaris dalam format ________34______34

bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING Catatan. Saat Anda menentukan skema menggunakan alat baris perintah ________34______35, Anda tidak dapat menyertakan jenis LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 36 (), Anda tidak dapat menyertakan deskripsi bidang, dan Anda tidak dapat menentukan mode bidang. Semua mode bidang default ke LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _38. Untuk menyertakan deskripsi bidang, mode, dan jenis ________34______36, berikan sebagai gantinya.

Perintah berikut memuat data dari banyak file di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 40 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. URI Cloud Storage menggunakan karakter pengganti. Skema terdeteksi secara otomatis

bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata*.csv

Perintah berikut memuat data dari banyak file di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 40 ke dalam tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Perintah tersebut menyertakan daftar URI Cloud Storage yang dipisahkan koma dengan karakter pengganti. Skema didefinisikan dalam file skema lokal bernama LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 0

API

  1. Buat tugas LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _47 yang mengarah ke sumber data di Cloud Storage

  2. (Opsional) Tentukan lokasi Anda di properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 48 di bagian LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 49 sumber daya pekerjaan

  3. Properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _50 harus sepenuhnya memenuhi syarat, dalam format LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 51. Setiap URI dapat berisi satu '*'

  4. Tentukan format data CSV dengan menyetel properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 52 ke bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5

  5. Untuk memeriksa status pekerjaan, hubungi LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _54, di mana job_id adalah ID pekerjaan yang dikembalikan oleh permintaan awal

    • Jika LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _55, pekerjaan berhasil diselesaikan
    • Jika properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _56 ada, permintaan gagal, dan objek tersebut akan menyertakan informasi yang menjelaskan apa yang salah. Saat permintaan gagal, tidak ada tabel yang dibuat dan tidak ada data yang dimuat
    • Jika LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _56 tidak ada, pekerjaan selesai dengan sukses, meskipun mungkin ada beberapa kesalahan non-fatal, seperti masalah mengimpor beberapa baris. Kesalahan non-fatal tercantum dalam properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 58 objek pekerjaan yang dikembalikan

Catatan API

  • Pekerjaan beban bersifat atomik dan konsisten;

  • Sebagai praktik terbaik, buat ID unik dan berikan sebagai LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 59 saat menelepon LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 60 untuk membuat tugas pemuatan. Pendekatan ini lebih kuat untuk kegagalan jaringan karena klien dapat memilih atau mencoba kembali ID pekerjaan yang diketahui

  • Memanggil LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _60 pada ID pekerjaan tertentu bersifat idempoten. Anda dapat mencoba lagi sebanyak yang Anda suka pada ID pekerjaan yang sama, dan paling banyak salah satu dari operasi tersebut akan berhasil

C#

Sebelum mencoba sampel ini, ikuti petunjuk penyiapan C# di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi BigQuery C# API.

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 1

Pergi

Sebelum mencoba sampel ini, ikuti petunjuk penyiapan Go di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API BigQuery Go .

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 2

Jawa

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi lebih lanjut, lihat dokumentasi referensi BigQuery Java API.

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 3

Node. js

Sebelum mencoba contoh ini, ikuti Node. js petunjuk penyiapan di quickstart BigQuery menggunakan library klien. Untuk informasi selengkapnya, lihat BigQuery Node. js dokumentasi referensi API.

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 4

PHP

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API BigQuery PHP .

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 5

Piton

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python BigQuery.

Gunakan metode untuk memuat data dari file CSV di Cloud Storage. Berikan definisi skema eksplisit dengan menyetel properti ke daftar objek

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 6

Rubi

Sebelum mencoba sampel ini, ikuti petunjuk penyiapan Ruby di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Ruby BigQuery.

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 7

Memuat data CSV ke dalam tabel yang menggunakan partisi waktu berbasis kolom

Untuk memuat data CSV dari Cloud Storage ke dalam tabel BigQuery yang menggunakan partisi waktu berbasis kolom

Pergi

Sebelum mencoba sampel ini, ikuti petunjuk penyiapan Go di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API BigQuery Go .

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 8

Jawa

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi lebih lanjut, lihat dokumentasi referensi BigQuery Java API.

Lihat di GitHub

LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _9

Node. js

Sebelum mencoba contoh ini, ikuti Node. js petunjuk penyiapan di quickstart BigQuery menggunakan library klien. Untuk informasi selengkapnya, lihat BigQuery Node. js dokumentasi referensi API.

Lihat di GitHub

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _0

Piton

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python BigQuery.

Lihat di GitHub

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _1

Menambahkan atau menimpa tabel dengan data CSV

Anda dapat memuat data tambahan ke dalam tabel baik dari file sumber atau dengan menambahkan hasil kueri

Di konsol Google Cloud, gunakan opsi Preferensi tulis untuk menentukan tindakan yang harus diambil saat Anda memuat data dari file sumber atau dari hasil kueri

Anda memiliki opsi berikut saat memuat data tambahan ke dalam tabel

Opsi konsolLOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 35 flag alatProperti BigQuery APIDeskripsiTulis jika kosongTidak didukungLOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 63Menulis data hanya jika tabel kosong. Tambahkan ke tabelLOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _64 atau LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 65; . Timpa tabelLOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 68 atau LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 69LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 70Menghapus semua data yang ada di tabel sebelum menulis data baru. Tindakan ini juga akan menghapus skema tabel dan menghapus kunci Cloud KMS apa pun

Jika Anda memuat data ke tabel yang sudah ada, pekerjaan pemuatan dapat menambahkan data atau menimpa tabel

Catatan. Halaman ini tidak mencakup menambahkan atau menimpa tabel yang dipartisi. Untuk informasi tentang menambahkan dan menimpa tabel berpartisi, lihat.

Menghibur

  1. Di Google Cloud Console, buka halaman BigQuery

    Buka BigQuery

  2. Di panel Penjelajah, perluas proyek Anda, lalu pilih kumpulan data
  3. Di bagian Dataset info, klik add_box Create table.
  4. Di panel Buat tabel, tentukan detail berikut
    1. Di bagian Sumber, pilih Google Cloud Storage di daftar Buat tabel dari. Kemudian, lakukan hal berikut
      1. Pilih file dari bucket Cloud Storage, atau masukkan. Anda tidak dapat menyertakan beberapa URI di Google Cloud Console, tetapi didukung. Bucket Cloud Storage harus berada di lokasi yang sama dengan set data yang berisi tabel yang ingin Anda buat, tambahkan, atau timpa. bq show --format=prettyjson dataset.table
      2. Opsi 2. Klik add_box Tambahkan bidang dan masukkan skema tabel. Tentukan Nama setiap bidang, , dan.
      3. Catatan. Dimungkinkan untuk memodifikasi skema tabel saat Anda menambahkan atau menimpanya. Untuk informasi selengkapnya tentang perubahan skema yang didukung selama operasi pemuatan, lihat Memodifikasi skema tabel
      4. Opsional. Tentukan pengaturan Partisi dan cluster. Untuk informasi selengkapnya, lihat Membuat tabel berpartisi dan Membuat dan menggunakan tabel berkerumun. Anda tidak dapat mengonversi tabel menjadi tabel terpartisi atau tergugus dengan menambahkan atau menimpanya. Konsol Google Cloud tidak mendukung penambahan atau penimpaan tabel yang dipartisi atau dikelompokkan dalam tugas pemuatan
      5. Klik Opsi lanjutan dan lakukan hal berikut
        • Untuk preferensi Tulis, pilih Tambahkan ke tabel atau Timpa tabel
        • Untuk Jumlah kesalahan yang diizinkan, terima nilai default bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 atau masukkan jumlah maksimum baris berisi kesalahan yang dapat diabaikan. Jika jumlah baris dengan kesalahan melebihi nilai ini, pekerjaan akan menghasilkan pesan bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 8 dan gagal. Opsi ini hanya berlaku untuk file CSV dan JSON
        • Jika Anda ingin mengabaikan nilai dalam baris yang tidak ada dalam skema tabel, pilih Nilai tidak diketahui
        • Untuk pembatas Bidang, pilih karakter yang memisahkan sel di file CSV Anda. Koma, Tab, Pipa, atau Khusus. Jika Anda memilih Khusus, masukkan pembatas di kotak Pembatas bidang khusus. Nilai defaultnya adalah Koma
        • Untuk melewati baris Header, masukkan jumlah baris header yang akan dilewati di bagian atas file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7
        • Untuk baris baru yang dikutip, centang Izinkan baris baru yang dikutip untuk mengizinkan bagian data yang dikutip yang berisi karakter baris baru dalam file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
        • Untuk baris bergerigi, centang Izinkan baris bergerigi untuk menerima baris dalam file CSV yang tidak ada di belakang kolom opsional. Nilai yang hilang diperlakukan sebagai nol. Jika tidak dicentang, catatan dengan kolom akhir yang hilang dianggap sebagai catatan buruk, dan jika ada terlalu banyak catatan buruk, kesalahan yang tidak valid dikembalikan dalam hasil pekerjaan. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
        • Untuk Enkripsi, klik Kunci yang dikelola pelanggan untuk menggunakan kunci Layanan Manajemen Kunci Cloud. Jika Anda meninggalkan setelan kunci yang dikelola Google, BigQuery akan mengenkripsi data nonaktif
      6. Klik Buat tabel

SQL

Menggunakan. Contoh berikut menambahkan file CSV ke tabel bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3

  1. Di Google Cloud Console, buka halaman BigQuery

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut

    bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _3
  3. Klik play_circle Lari.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat

bq

Gunakan perintah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 4, tentukan bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5 menggunakan bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 6, dan sertakan. Anda dapat menyertakan satu URI, daftar URI yang dipisahkan koma, atau URI yang berisi a

Sediakan inline skema, dalam file definisi skema, atau gunakan deteksi otomatis skema. Jika Anda tidak menentukan skema, dan bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0, dan tabel tujuan ada, maka skema tabel tujuan akan digunakan

Tentukan bendera LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _68 untuk menimpa tabel. Gunakan bendera LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _64 untuk menambahkan data ke tabel. Jika tidak ada flag yang ditentukan, defaultnya adalah menambahkan data

Dimungkinkan untuk memodifikasi skema tabel saat Anda menambahkan atau menimpanya. Untuk informasi selengkapnya tentang perubahan skema yang didukung selama operasi pemuatan, lihat Memodifikasi skema tabel

(Opsional) Berikan bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 dan tetapkan nilainya ke lokasi Anda

Bendera opsional lainnya termasuk

  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _0. Jika ditentukan, terima baris dalam file CSV yang tidak ada di kolom opsional. Nilai yang hilang diperlakukan sebagai nol. Jika tidak dicentang, catatan dengan kolom akhir yang hilang dianggap sebagai catatan buruk, dan jika ada terlalu banyak catatan buruk, kesalahan yang tidak valid dikembalikan dalam hasil pekerjaan. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _2. Jika ditentukan, izinkan bagian data yang dikutip yang berisi karakter baris baru dalam file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _4. Karakter yang menunjukkan batas antar kolom dalam data. Baik bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv 5 dan bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv 6 diizinkan untuk pembatas tab. Nilai defaultnya adalah bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _7
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _8. String khusus opsional yang mewakili nilai NULL dalam data CSV
  • bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _9. Menentukan jumlah baris header yang akan dilewati di bagian atas file CSV. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _1. Karakter kutipan yang akan digunakan untuk mengapit rekaman. Nilai defaultnya adalah bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING 2. Untuk menunjukkan tidak ada karakter kutipan, gunakan string kosong
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _3. Bilangan bulat yang menentukan jumlah maksimum catatan buruk yang diizinkan sebelum seluruh pekerjaan gagal. Nilai defaultnya adalah bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7. Paling banyak, lima kesalahan jenis apa pun dikembalikan terlepas dari nilai bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING 3
  • bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ qtr:STRING,sales:FLOAT,year:STRING _6. Jika ditentukan, izinkan dan abaikan nilai tambahan yang tidak dikenal dalam data CSV atau JSON
  • bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7. Jika ditentukan, aktifkan deteksi otomatis skema untuk data CSV dan JSON
  • LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _04. Kunci Cloud KMS untuk enkripsi data tabel
bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _4

Di mana

  • lokasi adalah lokasi Anda. Bendera bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _9 adalah opsional. Anda dapat menetapkan nilai default untuk lokasi menggunakan
  • formatnya adalah bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5
  • dataset adalah dataset yang sudah ada
  • table adalah nama tabel tempat Anda memuat data
  • path_to_source adalah daftar URI yang sepenuhnya memenuhi syarat atau dipisahkan koma. juga didukung
  • skema adalah skema yang valid. Skema dapat berupa file JSON lokal, atau dapat diketik sebaris sebagai bagian dari perintah. Anda juga dapat menggunakan flag bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 alih-alih menyediakan definisi skema

Contoh

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 dan menimpa tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan menggunakan deteksi otomatis skema

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _5

Perintah berikut memuat data dari LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _10 dan menambahkan data ke tabel bernama bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 3 di LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 12. Skema didefinisikan menggunakan file skema JSON — LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 13

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _6

API

  1. Buat tugas LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _47 yang mengarah ke sumber data di Cloud Storage

  2. (Opsional) Tentukan lokasi Anda di properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 48 di bagian LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 49 sumber daya pekerjaan

  3. Properti LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); _50 harus sepenuhnya memenuhi syarat, dalam format LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 51. Anda dapat menyertakan beberapa URI sebagai daftar yang dipisahkan koma. Catatan yang juga didukung

  4. Tentukan format data dengan menyetel properti bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 20 ke bq load \ --source_format=CSV \ --time_partitioning_field mytimestamp \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5

  5. Tentukan preferensi tulis dengan menyetel properti bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 22 ke LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 70 atau LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 67

Pergi

Sebelum mencoba sampel ini, ikuti petunjuk penyiapan Go di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API BigQuery Go .

Lihat di GitHub

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _7

Jawa

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi lebih lanjut, lihat dokumentasi referensi BigQuery Java API.

Lihat di GitHub

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _8

Node. js

Sebelum mencoba contoh ini, ikuti Node. js petunjuk penyiapan di quickstart BigQuery menggunakan library klien. Untuk informasi selengkapnya, lihat BigQuery Node. js dokumentasi referensi API.

Untuk mengganti baris dalam tabel yang ada, atur nilai bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 25 dalam parameter bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 26 ke bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 27

Lihat di GitHub

bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _9

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API BigQuery PHP .

Lihat di GitHub

bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 0

Piton

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai BigQuery menggunakan pustaka klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python BigQuery.

Untuk mengganti baris dalam tabel yang sudah ada, setel properti ke konstanta SourceFormat LOAD DATA OVERWRITE mydataset.mytable FROM FILES ( format = 'CSV', uris = ['gs://bucket/path/file.csv']); 70

Lihat di GitHub

bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 1

Memuat data CSV yang dipartisi hive

BigQuery mendukung pemuatan data CSV yang dipartisi hive yang disimpan di Cloud Storage dan akan mengisi kolom partisi hive sebagai kolom di tabel tujuan yang dikelola BigQuery. Untuk informasi selengkapnya, lihat Memuat Data yang Dipartisi Secara Eksternal dari Cloud Storage

Detail pemuatan data CSV

Bagian ini menjelaskan cara BigQuery menangani berbagai opsi pemformatan CSV

Pengkodean

BigQuery mengharapkan data CSV berenkode UTF-8. Jika Anda memiliki file CSV dengan data yang dienkode dalam format ISO-8859-1 (juga dikenal sebagai Latin-1), Anda harus menentukan enkode secara eksplisit sehingga BigQuery dapat mengonversi data menjadi UTF-8 dengan benar

Jika Anda tidak menentukan enkode, atau jika Anda menentukan enkode UTF-8 saat file CSV tidak berenkode UTF-8, BigQuery akan mencoba mengonversi data menjadi UTF-8. Secara umum, data Anda akan berhasil dimuat, tetapi mungkin tidak sesuai dengan byte demi byte yang Anda harapkan. Untuk menghindari hal ini, tentukan penyandian yang benar dengan menggunakan bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 29

Catatan. Secara default, jika file CSV berisi karakter ASCII bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7 (NULL), Anda tidak dapat memuat data ke BigQuery. Jika Anda ingin mengizinkan ASCII bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _7 dan karakter kontrol ASCII lainnya, setel bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 32 ke pekerjaan pemuatan Anda

Jika BigQuery tidak dapat mengonversi karakter selain karakter ASCII bq load \ --source_format=CSV \ --time_partitioning_type=DAY \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 7, BigQuery mengonversi karakter tersebut menjadi karakter pengganti Unicode standar. �

Pembatas bidang

Pembatas dalam file CSV dapat berupa karakter single-byte apa pun. Jika file sumber menggunakan pengkodean ISO-8859-1, karakter apa pun dapat menjadi pembatas. Jika file sumber menggunakan pengkodean UTF-8, karakter apa pun dalam rentang desimal 1-127 (U+0001-U+007F) dapat digunakan tanpa modifikasi. Anda dapat menyisipkan karakter ISO-8859-1 di luar rentang ini sebagai pembatas, dan BigQuery akan menafsirkannya dengan benar. Namun, jika Anda menggunakan karakter multibita sebagai pembatas, beberapa byte akan diinterpretasikan secara tidak benar sebagai bagian dari nilai bidang

Umumnya, praktik terbaik adalah menggunakan pembatas standar, seperti tab, pipa, atau koma. Standarnya adalah koma

Tipe data

Boolean. BigQuery dapat mengurai salah satu pasangan berikut untuk data Boolean. 1 atau 0, benar atau salah, t atau f, ya atau tidak, atau y atau n (semua tidak peka huruf besar/kecil). Deteksi otomatis skema secara otomatis mendeteksi semua ini kecuali 0 dan 1

Byte. Kolom dengan tipe BYTES harus dikodekan sebagai Base64

Tanggal. Kolom dengan tipe DATE harus dalam format bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json 5

Tanggal Waktu. Kolom dengan tipe DATETIME harus dalam format bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 35

Geografi. Kolom dengan tipe GEOGRAPHY harus berisi string dalam salah satu format berikut

  • Teks terkenal (WKT)
  • Biner terkenal (WKB)
  • GeoJSON

Jika Anda menggunakan WKB, nilainya harus disandikan hex

Daftar berikut menunjukkan contoh data yang valid

  • WKT. bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _36
  • GeoJSON. bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _37
  • WKB yang disandikan hex. bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _38

Sebelum memuat data GEOGRAFI, baca juga

Selang. Kolom dengan jenis bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 39 harus dalam format bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 40, di mana

  • Y = Tahun. Kisaran yang didukung adalah 0-10.000
  • M = Bulan. Kisaran yang didukung adalah 1-12
  • D = Hari. Kisaran yang didukung adalah 1- [hari terakhir dari bulan yang ditunjukkan]
  • H = Jam
  • M = Menit
  • S = Kedua
  • [. F] = Pecahan detik hingga enam digit, dengan presisi mikrodetik

Anda dapat menunjukkan nilai negatif dengan menambahkan tanda hubung (-)

Daftar berikut menunjukkan contoh data yang valid

  • bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _41
  • bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _42
  • bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema _43

Untuk memuat data INTERVAL, Anda harus menggunakan perintah dan menggunakan flag bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 45 untuk menentukan skema. Anda tidak dapat mengunggah data INTERVAL dengan menggunakan konsol

JSON. Kutipan diloloskan dengan menggunakan urutan dua karakter bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 46. Untuk informasi lebih lanjut, lihat contoh dari

Waktu. Kolom dengan tipe TIME harus dalam format bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 47

Stempel waktu. BigQuery menerima berbagai format stempel waktu. Stempel waktu harus menyertakan bagian tanggal dan bagian waktu

  • Bagian tanggal dapat diformat sebagai bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json _5 atau bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 49

  • Bagian stempel waktu harus diformat sebagai bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 50 (detik dan pecahan detik adalah opsional)

  • Tanggal dan waktu harus dipisahkan dengan spasi atau 'T'

  • Opsional, tanggal dan waktu dapat diikuti dengan offset UTC atau penanda zona UTC (bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 51). Untuk informasi lebih lanjut, lihat

Misalnya, salah satu dari berikut ini adalah nilai stempel waktu yang valid

  • 19-08-2018 12. 11
  • 19-08-2018 12. 11. 35
  • 19-08-2018 12. 11. 35. 22
  • 19/08/2018 12. 11
  • 05-07-2018 12. 54. 00 UTC
  • 19-08-2018 07. 11. 35. 220 -05. 00
  • 2018-08-19T12. 11. 35. 220Z

Jika Anda memberikan skema, BigQuery juga menerima waktu epoch Unix untuk nilai stempel waktu. Namun, deteksi otomatis skema tidak mendeteksi kasus ini, dan memperlakukan nilai sebagai tipe numerik atau string

Contoh nilai cap waktu zaman Unix

  • 1534680695
  • 1. 534680695e11

Deteksi otomatis skema

Bagian ini menjelaskan perilaku deteksi otomatis skema saat memuat file CSV

pembatas CSV

BigQuery mendeteksi pembatas berikut

  • koma ( , )
  • pipa (. )
  • tab ( \t )

Tajuk CSV

BigQuery menyimpulkan header dengan membandingkan baris pertama file dengan baris lain dalam file. Jika baris pertama hanya berisi string, dan baris lainnya berisi jenis data lain, BigQuery menganggap baris pertama adalah baris header. Dalam hal ini, BigQuery menetapkan nama kolom berdasarkan nama kolom di baris header. Nama mungkin dimodifikasi untuk memenuhi kolom for di BigQuery. Misalnya, spasi akan diganti dengan garis bawah

Jika tidak, BigQuery menganggap baris pertama adalah baris data, dan menetapkan nama kolom umum seperti bq --location=location load \ --source_format=format \ dataset.table \ path_to_source \ schema 52. Perhatikan bahwa setelah tabel dibuat, nama kolom tidak dapat diperbarui dalam skema, meskipun Anda dapat memperbaruinya setelah tabel dibuat. Pilihan lainnya adalah menyediakan skema eksplisit alih-alih menggunakan deteksi otomatis

Anda mungkin memiliki file CSV dengan baris header, yang semua bidang datanya berupa string. Dalam hal ini, BigQuery tidak akan otomatis mendeteksi bahwa baris pertama adalah header. Gunakan opsi bq load \ --autodetect \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv _9 untuk melewati baris tajuk. Jika tidak, tajuk akan diimpor sebagai data. Pertimbangkan juga untuk menyediakan skema eksplisit dalam kasus ini, sehingga Anda dapat menetapkan nama kolom

CSV mengutip baris baru

BigQuery mendeteksi karakter baris baru yang dikutip dalam kolom CSV dan tidak menafsirkan karakter baris baru yang dikutip sebagai batas baris

opsi CSV

Untuk mengubah cara BigQuery mengurai data CSV, tentukan opsi tambahan di Google Cloud Console, alat baris perintah ________34______35, atau API

Bagaimana cara memeriksa apakah file CSV kosong atau tidak di PHP?

PHP kosong() Fungsi . Fungsi ini mengembalikan false jika variabel ada dan tidak kosong, jika tidak maka mengembalikan true

Bagaimana saya tahu jika file CSV kosong?

read_csv(namafile) # atau pd. read_excel(namafile) untuk file xls df. kosong # akan mengembalikan True jika kerangka data kosong atau False jika tidak . Simpan jawaban ini.

Bagaimana cara memvalidasi file CSV di PHP?

php. $baris = larik(); . ==

Bagaimana cara menghitung jumlah baris dalam file CSV PHP?

Baris CSV dipisahkan oleh jeda baris. Oleh karena itu, pisahkan baris dengan jeda baris, dan Anda akan mendapatkan larik baris, yang dapat dihitung . Anda sebenarnya tidak membaca dari penunjuk file. Dan jika Anda hanya menghitung baris, maka count(file("test.

Postingan terbaru

LIHAT SEMUA