Kiểm tra xem tệp CSV có trống không PHP

Để kiểm tra xem tệp có trống không bằng PowerShell, chúng ta có thể sử dụng phương thức chuỗi có tên IsNullorWhiteSpace(). Phương pháp này cung cấp kết quả đúng nếu tệp trống hoặc chỉ chứa khoảng trắng nếu không thì sai

Ví dụ: Chúng tôi có một test2. tệp văn bản txt có khoảng trắng

Ví dụ

[String]::IsNullOrWhiteSpace((Get-content C:\Test2.txt))

đầu ra

True

Nhưng nếu bạn có một tệp như CSV chứa ít tiêu đề nhưng dữ liệu trống, trong trường hợp đó, Get-Content sẽ hiển thị đầu ra sai vì nó sẽ xem xét các tiêu đề. Ví dụ,

Đưa ra một tài liệu HTML chứa phần tử đầu vào, nhiệm vụ là kiểm tra xem phần tử đầu vào có trống hay không với sự trợ giúp của JavaScript.  

Cách tiếp cận 1. sử dụng phần tử. các tập tin. thuộc tính độ dài để kiểm tra tệp có được chọn hay không. nếu phần tử. các tập tin. thuộc tính độ dài trả về 0 thì tệp không được chọn nếu không thì tệp được chọn

Ví dụ. Ví dụ này thực hiện cách tiếp cận trên.  

html




<h1 style="color:green;">

    GeeksForGeeks

h1>

h11

<h13 h14=h16 style=h19>

h13>

h11

<style6 style7=___style9 =0==2 h14=style9 =6

h11

<=9_______257_______0=9>

h11

<"color:green;"5 "color:green;"6="color:green;"8>

    >1

"color:green;"5>

h11

<h13 h14=    0 style=    3>

h13>

h11

<GeeksForGeeks0>

    GeeksForGeeks3

    GeeksForGeeks5

    GeeksForGeeks7

GeeksForGeeks8

    0

1____261_______2

3

    5

67

89

6h11

8h13

6h15

    h15

GeeksForGeeks0>

đầu ra

Kiểm tra xem tệp CSV có trống không PHP

 

Cách tiếp cận 2. sử dụng phần tử. các tập tin. thuộc tính độ dài trong jQuery để kiểm tra tệp có được chọn hay không. nếu phần tử. các tập tin. thuộc tính độ dài trả về 0 thì tệp không được chọn nếu không tệp được chọn.  

Khi tải dữ liệu CSV từ Cloud Storage, bạn có thể tải dữ liệu vào bảng hoặc phân vùng mới hoặc bạn có thể nối thêm hoặc ghi đè lên bảng hoặc phân vùng hiện có. Khi dữ liệu của bạn được tải vào BigQuery, dữ liệu đó sẽ được chuyển đổi thành định dạng cột cho Capacitor (định dạng lưu trữ của BigQuery)

Khi bạn tải dữ liệu từ Cloud Storage vào bảng BigQuery, tập dữ liệu chứa bảng phải ở cùng một vị trí khu vực hoặc đa khu vực với bộ chứa Cloud Storage

Để biết thông tin về cách tải dữ liệu CSV từ tệp cục bộ, hãy xem

Hãy thử nó cho chính mình

Nếu bạn là người mới sử dụng Google Cloud, hãy tạo một tài khoản để đánh giá cách BigQuery hoạt động trong các tình huống thực tế. Khách hàng mới cũng nhận được 300 đô la tín dụng miễn phí để chạy, thử nghiệm và triển khai khối lượng công việc

Dùng thử BigQuery miễn phí

Hạn chế

Bạn phải tuân theo các giới hạn sau khi tải dữ liệu vào BigQuery từ bộ chứa Cloud Storage

  • Nếu vị trí của tập dữ liệu của bạn được đặt thành một giá trị khác với đa vùng
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    2, thì bộ chứa Cloud Storage phải ở cùng một vùng hoặc được chứa trong cùng một đa vùng với tập dữ liệu
  • BigQuery không đảm bảo tính nhất quán của dữ liệu cho các nguồn dữ liệu ngoài. Các thay đổi đối với dữ liệu cơ bản trong khi truy vấn đang chạy có thể dẫn đến hành vi không mong muốn
  • BigQuery không hỗ trợ lập phiên bản đối tượng Cloud Storage. Nếu bạn bao gồm một số thế hệ trong URI lưu trữ đám mây, thì công việc tải không thành công

Khi bạn tải tệp CSV vào BigQuery, hãy lưu ý những điều sau

  • Tệp CSV không hỗ trợ dữ liệu lồng nhau hoặc lặp lại
  • Xóa các ký tự đánh dấu thứ tự byte (BOM). Chúng có thể gây ra sự cố không mong muốn
  • Nếu bạn sử dụng nén gzip, BigQuery không thể đọc dữ liệu song song. Tải dữ liệu CSV đã nén vào BigQuery chậm hơn so với tải dữ liệu không nén. Nhìn thấy
  • Bạn không thể đưa cả tệp nén và tệp không nén vào cùng một tác vụ tải
  • Kích thước tối đa cho tệp gzip là 4 GB
  • Khi bạn tải dữ liệu CSV hoặc JSON, các giá trị trong cột
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    3 phải sử dụng dấu phân cách dấu gạch ngang (
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    4) và ngày phải ở định dạng sau.
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5 (năm-tháng-ngày)
  • Khi bạn tải dữ liệu JSON hoặc CSV, các giá trị trong cột
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    6 phải sử dụng dấu phân cách dấu gạch ngang (
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    4) cho phần ngày của dấu thời gian và ngày phải ở định dạng sau.
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5 (năm-tháng-ngày). Phần
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    9 (giờ-phút-giây) của dấu thời gian phải sử dụng dấu hai chấm (
        bq load \
        --source_format=CSV \
        --skip_leading_rows=2
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    0) ngăn cách

Trước khi bắt đầu

Cấp vai trò Quản lý quyền truy cập và danh tính (IAM) cấp cho người dùng các quyền cần thiết để thực hiện từng tác vụ trong tài liệu này và tạo tập dữ liệu để lưu trữ dữ liệu của bạn

quyền cần thiết

Để tải dữ liệu vào BigQuery, bạn cần có quyền IAM để chạy tác vụ tải và tải dữ liệu vào bảng và phân vùng BigQuery. Nếu đang tải dữ liệu từ Cloud Storage, bạn cũng cần có quyền IAM để truy cập vào bộ chứa chứa dữ liệu của mình

Quyền tải dữ liệu vào BigQuery

Để tải dữ liệu vào bảng hoặc phân vùng BigQuery mới hoặc để nối thêm hoặc ghi đè lên bảng hoặc phân vùng hiện có, bạn cần có các quyền IAM sau

  •     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

Mỗi vai trò IAM được xác định trước sau đây bao gồm các quyền mà bạn cần để tải dữ liệu vào bảng hoặc phân vùng 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 (bao gồm quyền
        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 (bao gồm quyền
        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 (bao gồm quyền
        bq load \
        --source_format=CSV \
        --skip_leading_rows=2
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    4)

Ngoài ra, nếu bạn có quyền

    bq load \
    --source_format=CSV \
    --time_partitioning_type=DAY \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3, bạn có thể tạo và cập nhật bảng bằng cách sử dụng tác vụ tải trong bộ dữ liệu mà bạn tạo

Để biết thêm thông tin về vai trò và quyền IAM trong BigQuery, hãy xem Vai trò và quyền được xác định trước

Quyền tải dữ liệu từ Cloud Storage

Để tải dữ liệu từ bộ chứa Lưu trữ đám mây, bạn cần có các quyền IAM sau

  •     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 (bắt buộc nếu bạn đang sử dụng URI )

Tạo tập dữ liệu

Tạo bộ dữ liệu BigQuery để lưu trữ dữ liệu của bạn

Đang tải dữ liệu CSV vào bảng

Để tải dữ liệu CSV từ Cloud Storage vào bảng BigQuery mới, hãy chọn một trong các tùy chọn sau

Bảng điều khiển


Để làm theo hướng dẫn từng bước cho tác vụ này trực tiếp trong Cloud Shell Editor, hãy nhấp vào Hướng dẫn tôi

Hướng dẫn tôi


  1. Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery

    Truy cập BigQuery

  2. Trong ngăn Explorer, hãy mở rộng dự án của bạn rồi chọn một tập dữ liệu
  3. Trong phần Thông tin tập dữ liệu, hãy nhấp vào add_box Tạo bảng.
  4. Trong bảng Tạo bảng, chỉ định các chi tiết sau
    1. Trong phần Nguồn, chọn Google Cloud Storage trong danh sách Tạo bảng từ. Sau đó, làm như sau
      1. Chọn một tệp từ nhóm Lưu trữ đám mây hoặc nhập. Bạn không thể bao gồm nhiều URI trong bảng điều khiển Google Cloud, nhưng được hỗ trợ. Bộ chứa Lưu trữ đám mây phải ở cùng vị trí với tập dữ liệu chứa bảng mà bạn muốn tạo, nối thêm hoặc ghi đè.
        Kiểm tra xem tệp CSV có trống không PHP
      2. Đối với Định dạng tệp, hãy chọn CSV
    2. Trong phần Đích, chỉ định các chi tiết sau
      1. Đối với Tập dữ liệu, hãy chọn tập dữ liệu mà bạn muốn tạo bảng
      2. Trong trường Bảng, nhập tên của bảng mà bạn muốn tạo
      3. Xác minh rằng trường Loại bảng được đặt thành Bảng gốc
    3. Trong phần Lược đồ, nhập định nghĩa lược đồ. Để bật tính năng tự động phát hiện lược đồ, hãy chọn Tự động phát hiện. Bạn có thể nhập thông tin lược đồ theo cách thủ công bằng cách sử dụng một trong các phương pháp sau
      • lựa chọn 1. Nhấp vào Chỉnh sửa dưới dạng văn bản và dán lược đồ ở dạng mảng JSON. Khi bạn sử dụng một mảng JSON, bạn tạo lược đồ bằng quy trình tương tự như. Bạn có thể xem lược đồ của một bảng hiện có ở định dạng JSON bằng cách nhập lệnh sau.
            bq show --format=prettyjson dataset.table
            
      • Tùy chọn 2. Nhấp vào add_box Thêm trường và nhập lược đồ bảng. Chỉ định tên của từng trường, và.
    4. Không bắt buộc. Chỉ định cài đặt phân vùng và cụm. Để biết thêm thông tin, hãy xem Tạo các bảng được phân vùng và Tạo và sử dụng các bảng được phân cụm
    5. Nhấp vào Tùy chọn nâng cao và thực hiện các thao tác sau
      • Đối với tùy chọn Viết, hãy để Viết nếu chọn trống. Tùy chọn này tạo một bảng mới và tải dữ liệu của bạn vào đó
      • Đối với Số lượng lỗi được phép, hãy chấp nhận giá trị mặc định của
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        7 hoặc nhập số hàng chứa lỗi tối đa có thể bỏ qua. Nếu số hàng có lỗi vượt quá giá trị này, tác vụ sẽ dẫn đến thông báo
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        8 và không thành công. Tùy chọn này chỉ áp dụng cho các tệp CSV và JSON
      • Nếu bạn muốn bỏ qua các giá trị trong một hàng không có trong lược đồ của bảng, hãy chọn Giá trị không xác định
      • Đối với Dấu phân cách trường, hãy chọn ký tự phân tách các ô trong tệp CSV của bạn. Dấu phẩy, Tab, Ống hoặc Tùy chỉnh. Nếu chọn Custom thì điền dấu phân cách vào ô Custom field delimiter. Giá trị mặc định là Dấu phẩy
      • Để bỏ qua các hàng Tiêu đề, hãy nhập số hàng tiêu đề cần bỏ qua ở đầu tệp CSV. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        7
      • Đối với các dòng mới được trích dẫn, hãy kiểm tra Cho phép các dòng mới được trích dẫn để cho phép các phần dữ liệu được trích dẫn có chứa các ký tự dòng mới trong tệp CSV. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_field mytimestamp \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        0
      • Đối với các hàng có răng cưa, hãy chọn Cho phép các hàng có răng cưa chấp nhận các hàng trong tệp CSV bị thiếu các cột tùy chọn ở cuối. Các giá trị bị thiếu được coi là null. Nếu không được chọn, các bản ghi bị thiếu cột theo sau được coi là bản ghi không hợp lệ và nếu có quá nhiều bản ghi không hợp lệ, lỗi không hợp lệ sẽ được trả về trong kết quả công việc. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_field mytimestamp \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        0
      • Đối với Mã hóa, hãy nhấp vào Khóa do khách hàng quản lý để sử dụng khóa Dịch vụ quản lý khóa đám mây. Nếu bạn rời khỏi tùy chọn cài đặt khóa do Google quản lý, thì BigQuery sẽ mã hóa dữ liệu ở trạng thái lưu trữ
    6. Nhấp vào Tạo bảng
Ghi chú. Khi bạn tải dữ liệu vào một bảng trống bằng cách sử dụng bảng điều khiển Google Cloud, bạn không thể thêm nhãn, mô tả, hết hạn bảng hoặc hết hạn phân vùng.

Sau khi bảng được tạo, bạn có thể cập nhật ngày hết hạn, mô tả và nhãn của bảng nhưng bạn không thể thêm ngày hết hạn của phân vùng sau khi bảng được tạo bằng Google Cloud console. Để biết thêm thông tin, hãy xem Quản lý bảng

SQL

Sử dụng. Ví dụ sau tải tệp CSV vào bảng mới

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

  1. Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery

    Truy cập BigQuery

  2. Trong trình chỉnh sửa truy vấn, hãy nhập câu lệnh sau

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
  3. Nhấp vào play_circle Chạy.

Để biết thêm thông tin về cách chạy truy vấn, hãy xem

bq

Sử dụng lệnh

    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
4, chỉ định
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
5 bằng cách sử dụng cờ
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
6 và bao gồm một. Bạn có thể bao gồm một URI, danh sách URI được phân tách bằng dấu phẩy hoặc URI chứa một. Cung cấp lược đồ nội tuyến, trong tệp định nghĩa lược đồ hoặc sử dụng tính năng tự động phát hiện lược đồ. Nếu bạn không chỉ định lược đồ và
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
7 là
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
0 và bảng đích tồn tại, thì lược đồ của bảng đích sẽ được sử dụng

(Tùy chọn) Cung cấp cờ

    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
9 và đặt giá trị cho vị trí của bạn

Các cờ tùy chọn khác bao gồm

  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    0. Khi được chỉ định, hãy chấp nhận các hàng trong tệp CSV bị thiếu các cột tùy chọn ở cuối. Các giá trị bị thiếu được coi là null. Nếu không được chọn, các bản ghi bị thiếu cột theo sau được coi là bản ghi không hợp lệ và nếu có quá nhiều bản ghi không hợp lệ, lỗi không hợp lệ sẽ được trả về trong kết quả công việc. Giá trị mặc định là
        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. Khi được chỉ định, cho phép các phần dữ liệu được trích dẫn có chứa ký tự dòng mới trong tệp CSV. Giá trị mặc định là
        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. Ký tự chỉ ranh giới giữa các cột trong dữ liệu. Cả
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    5 và
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    6 đều được phép sử dụng dấu phân cách tab. Giá trị mặc định là
        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. Chuỗi tùy chỉnh tùy chọn đại diện cho giá trị NULL trong dữ liệu CSV
  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    9. Chỉ định số hàng tiêu đề cần bỏ qua ở đầu tệp CSV. Giá trị mặc định là
        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. Ký tự trích dẫn được sử dụng để đính kèm bản ghi. Giá trị mặc định là
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        qtr:STRING,sales:FLOAT,year:STRING
    
    2. Để biểu thị không có ký tự trích dẫn, hãy sử dụng một chuỗi rỗng
  •     bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        qtr:STRING,sales:FLOAT,year:STRING
    
    3. Một số nguyên xác định số bản ghi lỗi tối đa được phép trước khi toàn bộ công việc không thành công. Giá trị mặc định là
        bq load \
        --source_format=CSV \
        --time_partitioning_type=DAY \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7. Tối đa năm lỗi thuộc bất kỳ loại nào được trả về bất kể giá trị
        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. Khi được chỉ định, cho phép và bỏ qua các giá trị bổ sung, không được nhận dạng trong dữ liệu CSV hoặc JSON
  •     bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7. Khi được chỉ định, hãy bật tính năng tự động phát hiện lược đồ cho dữ liệu CSV và JSON
  •     bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        qtr:STRING,sales:FLOAT,year:STRING
    
    8. Cho phép phân vùng dựa trên thời gian trên bảng và đặt loại phân vùng. Các giá trị có thể là
        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 và
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata*.csv
    
    2. Cờ này là tùy chọn khi bạn tạo bảng được phân vùng trên cột
        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 hoặc
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    6. Loại phân vùng mặc định cho phân vùng dựa trên thời gian là
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata*.csv
    
    0. Bạn không thể thay đổi đặc tả phân vùng trên một bảng hiện có
  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata*.csv
    
    7. Một số nguyên chỉ định (tính bằng giây) khi nào nên xóa phân vùng dựa trên thời gian. Thời gian hết hạn ước tính theo ngày UTC của phân vùng cộng với giá trị số nguyên
  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata*.csv
    
    8. Cột
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    3 hoặc
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    6 được sử dụng để tạo bảng được phân vùng. Nếu phân vùng dựa trên thời gian được bật mà không có giá trị này, thì một bảng được phân vùng theo thời gian nhập sẽ được tạo
  • LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    01. Khi được bật, tùy chọn này yêu cầu người dùng bao gồm mệnh đề
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    02 chỉ định các phân vùng để truy vấn. Yêu cầu bộ lọc phân vùng có thể giảm chi phí và cải thiện hiệu suất. Để biết thêm thông tin, xem
  • LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    03. Danh sách được phân tách bằng dấu phẩy gồm tối đa bốn tên cột được sử dụng để tạo bảng nhóm
  • LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    04. Khóa Cloud KMS để mã hóa dữ liệu bảng

    Để biết thêm thông tin về lệnh

        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    4, hãy xem

    Để biết thêm thông tin về các bảng được phân vùng, hãy xem

    • Tạo các bảng được phân vùng

    Để biết thêm thông tin về các bảng nhóm, hãy xem

    • Tạo và sử dụng các bảng nhóm

    Để biết thêm thông tin về mã hóa bảng, hãy xem

    • Bảo vệ dữ liệu bằng khóa Cloud KMS

Để tải dữ liệu CSV vào BigQuery, hãy nhập lệnh sau

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

Ở đâu

  • vị trí là vị trí của bạn. Cờ
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    9 là tùy chọn. Ví dụ: nếu bạn đang sử dụng BigQuery ở khu vực Tokyo, bạn có thể đặt giá trị của cờ thành
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    07. Bạn có thể đặt giá trị mặc định cho vị trí bằng cách sử dụng
  • định dạng là
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5
  • tập dữ liệu là một tập dữ liệu hiện có
  • bảng là tên của bảng mà bạn đang tải dữ liệu vào
  • path_to_source là danh sách URI đủ điều kiện hoặc được phân tách bằng dấu phẩy. cũng được hỗ trợ
  • lược đồ là một lược đồ hợp lệ. Lược đồ có thể là tệp JSON cục bộ hoặc có thể được nhập nội tuyến như một phần của lệnh. Bạn cũng có thể sử dụng cờ
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7 thay vì cung cấp định nghĩa lược đồ

ví dụ

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là
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

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
13. Tệp CSV bao gồm hai hàng tiêu đề. Nếu
    bq load \
    --autodetect \
    --source_format=CSV \
    mydataset.mytable \
    gs://mybucket/mydata.csv
9 không được chỉ định, hành vi mặc định là giả sử tệp không chứa tiêu đề

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

Lệnh sau đây tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào bảng được phân vùng theo thời gian nhập có tên là
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là
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

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào một bảng được phân vùng mới có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Bảng được phân vùng trên cột
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
26. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là
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

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được tự động phát hiện

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

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 vào bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định nội tuyến ở định dạng
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
34

______52_______Lưu ý. Khi bạn chỉ định lược đồ bằng công cụ dòng lệnh
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
35, bạn không thể bao gồm loại
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
36 (), bạn không thể bao gồm mô tả trường và bạn không thể chỉ định chế độ trường. Tất cả các chế độ trường mặc định là
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
38. Để bao gồm các mô tả trường, chế độ và các loại
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
36, hãy cung cấp thay thế.

Lệnh sau tải dữ liệu từ nhiều tệp trong

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
40 vào một bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. URI lưu trữ đám mây sử dụng ký tự đại diện. Lược đồ được tự động phát hiện

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

Lệnh sau tải dữ liệu từ nhiều tệp trong

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
40 vào một bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lệnh bao gồm một danh sách các URI lưu trữ đám mây được phân tách bằng dấu phẩy với các ký tự đại diện. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là
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. Tạo một công việc

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    47 trỏ đến dữ liệu nguồn trong Cloud Storage

  2. (Tùy chọn) Chỉ định vị trí của bạn trong tài sản

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    48 trong phần
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    49 của tài nguyên công việc

  3. Tài sản

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    50 phải đủ điều kiện, ở định dạng
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    51. Mỗi URI có thể chứa một '*'

  4. Chỉ định định dạng dữ liệu CSV bằng cách đặt thuộc tính

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    52 thành
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5

  5. Để kiểm tra trạng thái công việc, hãy gọi

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    54, trong đó job_id là ID của công việc được yêu cầu ban đầu trả về

    • Nếu
      LOAD DATA OVERWRITE mydataset.mytable
      FROM FILES (
        format = 'CSV',
        uris = ['gs://bucket/path/file.csv']);
      
      55, công việc đã hoàn thành thành công
    • Nếu có thuộc tính
      LOAD DATA OVERWRITE mydataset.mytable
      FROM FILES (
        format = 'CSV',
        uris = ['gs://bucket/path/file.csv']);
      
      56, thì yêu cầu không thành công và đối tượng đó sẽ bao gồm thông tin mô tả điều gì đã xảy ra. Khi yêu cầu không thành công, không có bảng nào được tạo và không có dữ liệu nào được tải
    • Nếu không có
      LOAD DATA OVERWRITE mydataset.mytable
      FROM FILES (
        format = 'CSV',
        uris = ['gs://bucket/path/file.csv']);
      
      56, công việc đã hoàn thành thành công, mặc dù có thể có một số lỗi không nghiêm trọng, chẳng hạn như sự cố khi nhập một vài hàng. Các lỗi không nghiêm trọng được liệt kê trong thuộc tính
      LOAD DATA OVERWRITE mydataset.mytable
      FROM FILES (
        format = 'CSV',
        uris = ['gs://bucket/path/file.csv']);
      
      58 của đối tượng công việc được trả lại

ghi chú API

  • Công việc tải là nguyên tử và nhất quán;

  • Cách tốt nhất là tạo một ID duy nhất và chuyển nó dưới dạng

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    59 khi gọi
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    60 để tạo công việc tải. Cách tiếp cận này hiệu quả hơn đối với sự cố mạng vì khách hàng có thể thăm dò hoặc thử lại trên ID công việc đã biết

  • Gọi _______34_______60 trên một ID công việc nhất định là idempotent. Bạn có thể thử lại bao nhiêu lần tùy thích trên cùng một ID công việc và nhiều nhất một trong các thao tác đó sẽ thành công

C#

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập C# trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery C# .

Xem trên GitHub

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

Đi

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Go trong phần bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Go .

Xem trên GitHub

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

Java

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Java trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Java .

Xem trên GitHub

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

Nút. js

Trước khi thử mẫu này, hãy làm theo Nút. js hướng dẫn thiết lập trong bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem Nút BigQuery. js Tài liệu tham khảo API.

Xem trên GitHub

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

PHP

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập PHP trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery PHP .

Xem trên GitHub

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

con trăn

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Python trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Python .

Sử dụng phương pháp để tải dữ liệu từ tệp CSV trong Cloud Storage. Cung cấp định nghĩa lược đồ rõ ràng bằng cách đặt thuộc tính thành danh sách đối tượng

Xem trên GitHub

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

hồng ngọc

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Ruby trong phần bắt đầu nhanh BigQuery bằng cách sử dụng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Ruby .

Xem trên GitHub

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

Đang tải dữ liệu CSV vào bảng sử dụng phân vùng thời gian dựa trên cột

Để tải dữ liệu CSV từ Cloud Storage vào bảng BigQuery sử dụng phân vùng thời gian dựa trên cột

Đi

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Go trong phần bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Go .

Xem trên GitHub

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

Java

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Java trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Java .

Xem trên GitHub

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

Nút. js

Trước khi thử mẫu này, hãy làm theo Nút. js hướng dẫn thiết lập trong bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem Nút BigQuery. js Tài liệu tham khảo API.

Xem trên GitHub

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

con trăn

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Python trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Python .

Xem trên GitHub

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

Thêm vào hoặc ghi đè lên bảng bằng dữ liệu CSV

Bạn có thể tải dữ liệu bổ sung vào bảng từ tệp nguồn hoặc bằng cách nối thêm kết quả truy vấn

Trong bảng điều khiển Google Cloud, hãy sử dụng tùy chọn Tùy chọn ghi để chỉ định hành động cần thực hiện khi bạn tải dữ liệu từ tệp nguồn hoặc từ kết quả truy vấn

Bạn có các tùy chọn sau khi tải thêm dữ liệu vào bảng

Tùy chọn bảng điều khiển
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
35 cờ công cụ Thuộc tính API BigQuery Mô tả Ghi nếu trốngKhông được hỗ trợ
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
63Chỉ ghi dữ liệu nếu bảng trống. Nối vào bảng
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
64 hoặc
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
65; . Ghi đè bảng
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
68 hoặc
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
69
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
70Xóa tất cả dữ liệu hiện có trong một bảng trước khi ghi dữ liệu mới. Hành động này cũng xóa lược đồ bảng và xóa mọi khóa Cloud KMS

Nếu bạn tải dữ liệu vào một bảng hiện có, tác vụ tải có thể nối thêm dữ liệu hoặc ghi đè lên bảng

Ghi chú. Trang này không đề cập đến việc nối thêm hoặc ghi đè lên các bảng được phân vùng. Để biết thông tin về nối thêm và ghi đè các bảng được phân vùng, hãy xem.

Bảng điều khiển

  1. Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery

    Truy cập BigQuery

  2. Trong ngăn Explorer, hãy mở rộng dự án của bạn rồi chọn một tập dữ liệu
  3. Trong phần Thông tin tập dữ liệu, hãy nhấp vào add_box Tạo bảng.
  4. Trong bảng Tạo bảng, chỉ định các chi tiết sau
    1. Trong phần Nguồn, chọn Google Cloud Storage trong danh sách Tạo bảng từ. Sau đó, làm như sau
      1. Chọn một tệp từ nhóm Lưu trữ đám mây hoặc nhập. Bạn không thể bao gồm nhiều URI trong bảng điều khiển Google Cloud, nhưng được hỗ trợ. Bộ chứa Lưu trữ đám mây phải ở cùng vị trí với tập dữ liệu chứa bảng mà bạn muốn tạo, nối thêm hoặc ghi đè.
        Kiểm tra xem tệp CSV có trống không PHP
      2. Đối với Định dạng tệp, hãy chọn CSV
    2. Ghi chú. Có thể sửa đổi lược đồ của bảng khi bạn nối thêm hoặc ghi đè lên nó. Để biết thêm thông tin về các thay đổi lược đồ được hỗ trợ trong quá trình hoạt động tải, hãy xem Sửa đổi lược đồ bảng
    3. Trong phần Đích, chỉ định các chi tiết sau
      1. Đối với Tập dữ liệu, hãy chọn tập dữ liệu mà bạn muốn tạo bảng
      2. Trong trường Bảng, nhập tên của bảng mà bạn muốn tạo
      3. Xác minh rằng trường Loại bảng được đặt thành Bảng gốc
    4. Trong phần Lược đồ, nhập định nghĩa lược đồ. Để bật tính năng tự động phát hiện lược đồ, hãy chọn Tự động phát hiện. Bạn có thể nhập thông tin lược đồ theo cách thủ công bằng cách sử dụng một trong các phương pháp sau
      • lựa chọn 1. Nhấp vào Chỉnh sửa dưới dạng văn bản và dán lược đồ ở dạng mảng JSON. Khi bạn sử dụng một mảng JSON, bạn tạo lược đồ bằng quy trình tương tự như. Bạn có thể xem lược đồ của một bảng hiện có ở định dạng JSON bằng cách nhập lệnh sau.
            bq show --format=prettyjson dataset.table
            
      • Tùy chọn 2. Nhấp vào add_box Thêm trường và nhập lược đồ bảng. Chỉ định tên của từng trường, và.
      • Ghi chú. Có thể sửa đổi lược đồ của bảng khi bạn nối thêm hoặc ghi đè lên nó. Để biết thêm thông tin về các thay đổi lược đồ được hỗ trợ trong quá trình hoạt động tải, hãy xem Sửa đổi lược đồ bảng
    5. Không bắt buộc. Chỉ định cài đặt phân vùng và cụm. Để biết thêm thông tin, hãy xem Tạo các bảng được phân vùng và Tạo và sử dụng các bảng được phân cụm. Bạn không thể chuyển đổi bảng thành bảng được phân vùng hoặc nhóm bằng cách nối thêm hoặc ghi đè lên bảng đó. Bảng điều khiển Google Cloud không hỗ trợ nối thêm hoặc ghi đè lên các bảng được phân vùng hoặc nhóm trong một tác vụ tải
    6. Nhấp vào Tùy chọn nâng cao và thực hiện các thao tác sau
      • Đối với tùy chọn Viết, hãy chọn Thêm vào bảng hoặc Ghi đè lên bảng
      • Đối với Số lượng lỗi được phép, hãy chấp nhận giá trị mặc định của
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        7 hoặc nhập số hàng chứa lỗi tối đa có thể bỏ qua. Nếu số hàng có lỗi vượt quá giá trị này, tác vụ sẽ dẫn đến thông báo
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        8 và không thành công. Tùy chọn này chỉ áp dụng cho các tệp CSV và JSON
      • Nếu bạn muốn bỏ qua các giá trị trong một hàng không có trong lược đồ của bảng, hãy chọn Giá trị không xác định
      • Đối với Dấu phân cách trường, hãy chọn ký tự phân tách các ô trong tệp CSV của bạn. Dấu phẩy, Tab, Ống hoặc Tùy chỉnh. Nếu chọn Custom thì điền dấu phân cách vào ô Custom field delimiter. Giá trị mặc định là Dấu phẩy
      • Để bỏ qua các hàng Tiêu đề, hãy nhập số hàng tiêu đề cần bỏ qua ở đầu tệp CSV. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_type=DAY \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        7
      • Đối với các dòng mới được trích dẫn, hãy kiểm tra Cho phép các dòng mới được trích dẫn để cho phép các phần dữ liệu được trích dẫn có chứa các ký tự dòng mới trong tệp CSV. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_field mytimestamp \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        0
      • Đối với các hàng có răng cưa, hãy chọn Cho phép các hàng có răng cưa chấp nhận các hàng trong tệp CSV bị thiếu các cột tùy chọn ở cuối. Các giá trị bị thiếu được coi là null. Nếu không được chọn, các bản ghi bị thiếu cột theo sau được coi là bản ghi không hợp lệ và nếu có quá nhiều bản ghi không hợp lệ, lỗi không hợp lệ sẽ được trả về trong kết quả công việc. Giá trị mặc định là
            bq load \
            --source_format=CSV \
            --time_partitioning_field mytimestamp \
            mydataset.mytable \
            gs://mybucket/mydata.csv \
            ./myschema.json
        
        0
      • Đối với Mã hóa, hãy nhấp vào Khóa do khách hàng quản lý để sử dụng khóa Dịch vụ quản lý khóa đám mây. Nếu bạn rời khỏi tùy chọn cài đặt khóa do Google quản lý, thì BigQuery sẽ mã hóa dữ liệu ở trạng thái lưu trữ
    7. Nhấp vào Tạo bảng

SQL

Sử dụng. Ví dụ sau nối tệp CSV vào bảng

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

  1. Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery

    Truy cập BigQuery

  2. Trong trình chỉnh sửa truy vấn, hãy nhập câu lệnh sau

    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    3
  3. Nhấp vào play_circle Chạy.

Để biết thêm thông tin về cách chạy truy vấn, hãy xem

bq

Sử dụng lệnh

    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
4, chỉ định
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
5 bằng cách sử dụng cờ
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
6 và bao gồm một. Bạn có thể bao gồm một URI, danh sách URI được phân tách bằng dấu phẩy hoặc URI chứa một

Cung cấp lược đồ nội tuyến, trong tệp định nghĩa lược đồ hoặc sử dụng tính năng tự động phát hiện lược đồ. Nếu bạn không chỉ định lược đồ và

    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
7 là
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
0 và bảng đích tồn tại, thì lược đồ của bảng đích sẽ được sử dụng

Chỉ định cờ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
68 để ghi đè lên bảng. Sử dụng cờ
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
64 để thêm dữ liệu vào bảng. Nếu không có cờ nào được chỉ định, mặc định là nối thêm dữ liệu

Có thể sửa đổi lược đồ của bảng khi bạn nối thêm hoặc ghi đè lên nó. Để biết thêm thông tin về các thay đổi lược đồ được hỗ trợ trong quá trình vận hành tải, hãy xem Sửa đổi lược đồ bảng

(Tùy chọn) Cung cấp cờ

    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
9 và đặt giá trị cho vị trí của bạn

Các cờ tùy chọn khác bao gồm

  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    0. Khi được chỉ định, hãy chấp nhận các hàng trong tệp CSV bị thiếu các cột tùy chọn ở cuối. Các giá trị bị thiếu được coi là null. Nếu không được chọn, các bản ghi bị thiếu cột theo sau được coi là bản ghi không hợp lệ và nếu có quá nhiều bản ghi không hợp lệ, lỗi không hợp lệ sẽ được trả về trong kết quả công việc. Giá trị mặc định là
        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. Khi được chỉ định, cho phép các phần dữ liệu được trích dẫn có chứa ký tự dòng mới trong tệp CSV. Giá trị mặc định là
        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. Ký tự chỉ ranh giới giữa các cột trong dữ liệu. Cả
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    5 và
        bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    6 đều được phép sử dụng dấu phân cách tab. Giá trị mặc định là
        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. Chuỗi tùy chỉnh tùy chọn đại diện cho giá trị NULL trong dữ liệu CSV
  •     bq load \
        --autodetect \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv
    
    9. Chỉ định số hàng tiêu đề cần bỏ qua ở đầu tệp CSV. Giá trị mặc định là
        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. Ký tự trích dẫn được sử dụng để đính kèm bản ghi. Giá trị mặc định là
        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        qtr:STRING,sales:FLOAT,year:STRING
    
    2. Để biểu thị không có ký tự trích dẫn, hãy sử dụng một chuỗi rỗng
  •     bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        qtr:STRING,sales:FLOAT,year:STRING
    
    3. Một số nguyên xác định số bản ghi lỗi tối đa được phép trước khi toàn bộ công việc không thành công. Giá trị mặc định là
        bq load \
        --source_format=CSV \
        --time_partitioning_type=DAY \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7. Tối đa năm lỗi thuộc bất kỳ loại nào được trả về bất kể giá trị
        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. Khi được chỉ định, cho phép và bỏ qua các giá trị bổ sung, không được nhận dạng trong dữ liệu CSV hoặc JSON
  •     bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7. Khi được chỉ định, hãy bật tính năng tự động phát hiện lược đồ cho dữ liệu CSV và JSON
  • LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    04. Khóa Cloud KMS để mã hóa dữ liệu bảng
bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
4

Ở đâu

  • vị trí là vị trí của bạn. Cờ
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    9 là tùy chọn. Bạn có thể đặt giá trị mặc định cho vị trí bằng cách sử dụng
  • định dạng là
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5
  • tập dữ liệu là một tập dữ liệu hiện có
  • bảng là tên của bảng mà bạn đang tải dữ liệu vào
  • path_to_source là danh sách URI đủ điều kiện hoặc được phân tách bằng dấu phẩy. cũng được hỗ trợ
  • lược đồ là một lược đồ hợp lệ. Lược đồ có thể là tệp JSON cục bộ hoặc có thể được nhập nội tuyến như một phần của lệnh. Bạn cũng có thể sử dụng cờ
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    7 thay vì cung cấp định nghĩa lược đồ

ví dụ

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 và ghi đè lên bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định bằng tính năng tự động phát hiện lược đồ

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

Lệnh sau tải dữ liệu từ

LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
10 và nối thêm dữ liệu vào bảng có tên
    bq load \
    --source_format=CSV \
    --time_partitioning_field mytimestamp \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
3 trong
LOAD DATA OVERWRITE mydataset.mytable
FROM FILES (
  format = 'CSV',
  uris = ['gs://bucket/path/file.csv']);
12. Lược đồ được xác định bằng tệp lược đồ 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. Tạo một công việc

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    47 trỏ đến dữ liệu nguồn trong Cloud Storage

  2. (Tùy chọn) Chỉ định vị trí của bạn trong tài sản

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    48 trong phần
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    49 của tài nguyên công việc

  3. Tài sản

    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    50 phải đủ điều kiện, ở định dạng
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    51. Bạn có thể bao gồm nhiều URI dưới dạng danh sách được phân tách bằng dấu phẩy. Lưu ý rằng cũng được hỗ trợ

  4. Chỉ định định dạng dữ liệu bằng cách đặt thuộc tính

    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    20 thành
        bq load \
        --source_format=CSV \
        --time_partitioning_field mytimestamp \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5

  5. Chỉ định tùy chọn ghi bằng cách đặt thuộc tính

    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    22 thành
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    70 hoặc
    LOAD DATA OVERWRITE mydataset.mytable
    FROM FILES (
      format = 'CSV',
      uris = ['gs://bucket/path/file.csv']);
    
    67

Đi

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Go trong phần bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Go .

Xem trên GitHub

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

Java

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Java trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Java .

Xem trên GitHub

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

Nút. js

Trước khi thử mẫu này, hãy làm theo Nút. js hướng dẫn thiết lập trong bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem Nút BigQuery. js Tài liệu tham khảo API.

Để thay thế các hàng trong một bảng hiện có, hãy đặt giá trị

bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
25 trong tham số
bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
26 thành
bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
27

Xem trên GitHub

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

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập PHP trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery PHP .

Xem trên GitHub

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

con trăn

Trước khi dùng thử mẫu này, hãy làm theo hướng dẫn thiết lập Python trong hướng dẫn bắt đầu nhanh BigQuery bằng thư viện máy khách. Để biết thêm thông tin, hãy xem tài liệu tham khảo API BigQuery Python .

Để thay thế các hàng trong một bảng hiện có, hãy đặt thuộc tính thành hằng số SourceFormat

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

Xem trên GitHub

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

Đang tải dữ liệu CSV được phân vùng tổ ong

BigQuery hỗ trợ tải dữ liệu CSV được phân vùng tổ ong được lưu trữ trên Cloud Storage và sẽ điền các cột phân vùng tổ ong dưới dạng các cột trong bảng đích do BigQuery quản lý. Để biết thêm thông tin, hãy xem Tải dữ liệu được phân vùng bên ngoài từ bộ nhớ đám mây

Chi tiết tải dữ liệu CSV

Phần này mô tả cách BigQuery xử lý các tùy chọn định dạng CSV khác nhau

mã hóa

BigQuery dự kiến ​​dữ liệu CSV sẽ được mã hóa UTF-8. Nếu bạn có tệp CSV với dữ liệu được mã hóa ở định dạng ISO-8859-1 (còn được gọi là Latin-1), thì bạn nên chỉ định rõ ràng mã hóa để BigQuery có thể chuyển đổi dữ liệu thành UTF-8 một cách chính xác

Nếu bạn không chỉ định mã hóa hoặc nếu bạn chỉ định mã hóa UTF-8 khi tệp CSV không được mã hóa UTF-8, thì BigQuery sẽ cố gắng chuyển đổi dữ liệu thành UTF-8. Nói chung, dữ liệu của bạn sẽ được tải thành công, nhưng nó có thể không khớp với từng byte như bạn mong đợi. Để tránh điều này, hãy chỉ định mã hóa chính xác bằng cách sử dụng

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

Ghi chú. Theo mặc định, nếu tệp CSV chứa ký tự ASCII
    bq load \
    --source_format=CSV \
    --time_partitioning_type=DAY \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
7 (NULL), thì bạn không thể tải dữ liệu vào BigQuery. Nếu bạn muốn cho phép ASCII
    bq load \
    --source_format=CSV \
    --time_partitioning_type=DAY \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
7 và các ký tự điều khiển ASCII khác, hãy đặt
bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
32 cho công việc tải của bạn

Nếu BigQuery không thể chuyển đổi một ký tự không phải là ký tự ASCII

    bq load \
    --source_format=CSV \
    --time_partitioning_type=DAY \
    mydataset.mytable \
    gs://mybucket/mydata.csv \
    ./myschema.json
7, thì BigQuery sẽ chuyển đổi ký tự đó thành ký tự thay thế Unicode tiêu chuẩn. �

Dấu phân cách trường

Dấu phân cách trong tệp CSV có thể là bất kỳ ký tự byte đơn nào. Nếu tệp nguồn sử dụng mã hóa ISO-8859-1, bất kỳ ký tự nào cũng có thể là dấu phân cách. Nếu tệp nguồn sử dụng mã hóa UTF-8, bất kỳ ký tự nào trong phạm vi thập phân 1-127 (U+0001-U+007F) đều có thể được sử dụng mà không cần sửa đổi. Bạn có thể chèn một ký tự ISO-8859-1 bên ngoài phạm vi này làm dấu phân cách và BigQuery sẽ diễn giải chính xác ký tự đó. Tuy nhiên, nếu bạn sử dụng ký tự nhiều byte làm dấu phân cách, một số byte sẽ được diễn giải không chính xác như một phần của giá trị trường

Nói chung, cách tốt nhất là sử dụng dấu phân cách chuẩn, chẳng hạn như tab, dấu gạch ngang hoặc dấu phẩy. Mặc định là dấu phẩy

Loại dữ liệu

Boolean. BigQuery có thể phân tích cú pháp bất kỳ cặp nào sau đây cho dữ liệu Boolean. 1 hoặc 0, đúng hoặc sai, t hoặc f, có hoặc không, hoặc y hoặc n (tất cả đều không phân biệt chữ hoa chữ thường). Tự động phát hiện sơ đồ tự động phát hiện bất kỳ trong số này ngoại trừ 0 và 1

byte. Các cột có loại BYTES phải được mã hóa dưới dạng Base64

Ngày. Các cột có loại NGÀY phải ở định dạng

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

Ngày giờ. Các cột có kiểu DATETIME phải ở định dạng

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

Địa lý. Các cột có loại ĐỊA LÝ phải chứa các chuỗi ở một trong các định dạng sau

  • Văn bản nổi tiếng (WKT)
  • Nhị phân nổi tiếng (WKB)
  • GeoJSON

Nếu bạn sử dụng WKB, giá trị phải được mã hóa hex

Danh sách sau đây cho thấy các ví dụ về dữ liệu hợp lệ

  • 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 được mã hóa hex.
    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    38

Trước khi tải dữ liệu ĐỊA LÝ, hãy đọc thêm

khoảng thời gian. Các cột có loại

bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
39 phải ở định dạng
bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
40, trong đó

  • Y = Năm. Phạm vi được hỗ trợ là 0-10.000
  • M = Tháng. Phạm vi được hỗ trợ là 1-12
  • Đ = Ngày. Phạm vi được hỗ trợ là 1-[ngày cuối cùng của tháng được chỉ định]
  • H = Giờ
  • M = Phút
  • S = Thứ hai
  • [. F] = Phân số của một giây lên đến sáu chữ số, với độ chính xác micro giây

Bạn có thể chỉ ra giá trị âm bằng cách thêm trước dấu gạch ngang (-)

Danh sách sau đây cho thấy các ví dụ về dữ liệu hợp lệ

  • 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

Để tải dữ liệu INTERVAL, bạn phải sử dụng lệnh và sử dụng cờ

bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
45 để chỉ định lược đồ. Bạn không thể tải lên dữ liệu INTERVAL bằng cách sử dụng bảng điều khiển

JSON. Dấu ngoặc kép được thoát ra bằng cách sử dụng chuỗi hai ký tự

bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
46. Để biết thêm thông tin, hãy xem một ví dụ về

Thời gian. Các cột có loại THỜI GIAN phải ở định dạng

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

dấu thời gian. BigQuery chấp nhận các định dạng dấu thời gian khác nhau. Dấu thời gian phải bao gồm phần ngày và phần thời gian

  • Phần ngày tháng có thể được định dạng là

        bq load \
        --source_format=CSV \
        mydataset.mytable \
        gs://mybucket/mydata.csv \
        ./myschema.json
    
    5 hoặc
    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    49

  • Phần dấu thời gian phải được định dạng là

    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    50 (giây và phân số của giây là tùy chọn)

  • Ngày và giờ phải được phân tách bằng dấu cách hoặc 'T'

  • Theo tùy chọn, ngày và giờ có thể được theo sau bởi phần bù UTC hoặc ký hiệu chỉ định vùng UTC (

    bq --location=location load \
    --source_format=format \
    dataset.table \
    path_to_source \
    schema
    
    51). Để biết thêm thông tin, xem

Ví dụ: bất kỳ giá trị nào sau đây là giá trị dấu thời gian hợp lệ

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

Nếu bạn cung cấp một giản đồ, thì BigQuery cũng chấp nhận thời gian Unix epoch cho các giá trị dấu thời gian. Tuy nhiên, tính năng tự động phát hiện lược đồ không phát hiện trường hợp này và thay vào đó xử lý giá trị dưới dạng số hoặc loại chuỗi

Ví dụ về giá trị dấu thời gian Unix epoch

  • 1534680695
  • 1. 534680695e11

Tự động phát hiện lược đồ

Phần này mô tả hành vi tự động phát hiện lược đồ khi tải tệp CSV

dấu phân cách CSV

BigQuery phát hiện các dấu phân cách sau

  • dấu phẩy ( , )
  • đường ống (. )
  • tab ( \t )

tiêu đề CSV

BigQuery phỏng đoán các tiêu đề bằng cách so sánh hàng đầu tiên của tệp với các hàng khác trong tệp. Nếu dòng đầu tiên chỉ chứa chuỗi và các dòng khác chứa các loại dữ liệu khác, BigQuery sẽ giả định rằng hàng đầu tiên là hàng tiêu đề. Trong trường hợp đó, BigQuery chỉ định tên cột dựa trên tên trường trong hàng tiêu đề. Tên có thể được sửa đổi để đáp ứng các cột for trong BigQuery. Ví dụ: khoảng trắng sẽ được thay thế bằng dấu gạch dưới

Mặt khác, BigQuery giả định hàng đầu tiên là hàng dữ liệu và gán các tên cột chung, chẳng hạn như

bq --location=location load \
--source_format=format \
dataset.table \
path_to_source \
schema
52. Lưu ý rằng sau khi tạo bảng, không thể cập nhật tên cột trong lược đồ, mặc dù bạn có thể cập nhật sau khi tạo bảng. Một tùy chọn khác là cung cấp lược đồ rõ ràng thay vì sử dụng tính năng tự động phát hiện

Bạn có thể có tệp CSV có hàng tiêu đề, trong đó tất cả các trường dữ liệu đều là chuỗi. Trong trường hợp đó, BigQuery sẽ không tự động phát hiện hàng đầu tiên là tiêu đề. Sử dụng tùy chọn

    bq load \
    --autodetect \
    --source_format=CSV \
    mydataset.mytable \
    gs://mybucket/mydata.csv
9 để bỏ qua hàng tiêu đề. Nếu không, tiêu đề sẽ được nhập dưới dạng dữ liệu. Ngoài ra, hãy xem xét việc cung cấp một lược đồ rõ ràng trong trường hợp này để bạn có thể gán tên cột

CSV trích dẫn dòng mới

BigQuery phát hiện các ký tự dòng mới được trích dẫn trong trường CSV và không diễn giải ký tự dòng mới được trích dẫn dưới dạng ranh giới hàng

tùy chọn CSV

Để thay đổi cách BigQuery phân tích cú pháp dữ liệu CSV, hãy chỉ định các tùy chọn bổ sung trong bảng điều khiển Google Cloud, công cụ dòng lệnh

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

Làm cách nào để kiểm tra xem tệp CSV có trống hay không trong PHP?

Hàm PHP rỗng () . Hàm này trả về false nếu biến tồn tại và không rỗng, ngược lại trả về true

Làm cách nào để biết tệp csv có trống không?

read_csv(tên tệp) # hoặc pd. read_excel(tên tệp) cho tệp xls df. empty # sẽ trả về True nếu khung dữ liệu trống hoặc False nếu không . Lưu câu trả lời này.