2012-05-15 42 views
8

Có ai biết về bất kỳ kế hoạch nào để thêm hỗ trợ xóa các phần dữ liệu khỏi bảng trong Google Bigquery không? Vấn đề chúng tôi có ngay bây giờ là chúng tôi đang sử dụng nó để phân tích các điểm dữ liệu mà chúng tôi thu thập theo thời gian. Chúng tôi muốn chạy các truy vấn trong dữ liệu X ngày qua, tuy nhiên sau những ngày dữ liệu X cuối cùng, chúng tôi không còn cần phải lưu trữ dữ liệu trong BigQuery nữa.Google BigQuery Delete Rows?

Cách duy nhất hiện tại chúng tôi có thể nghĩ đến xóa dữ liệu là xóa toàn bộ bảng dữ liệu, sau đó tạo lại và tải dữ liệu đó với số ngày dữ liệu X. Điều này mặc dù yêu cầu chúng tôi lưu trữ dữ liệu của chúng tôi trong các tệp CSV hàng ngày cũng không phải là tối ưu.

Bất kỳ đề xuất nào về cách xử lý vấn đề này hoặc nếu có truy vấn xóa hàng sắp tới trong tương lai gần?

Trả lời

12

2016 update: BigQuery có thể xóa và cập nhật hàng bây giờ - Fh

https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax


Cảm ơn để mô tả trường hợp sử dụng của bạn. BigQuery chỉ được nối thêm theo thiết kế. Chúng tôi hiện không hỗ trợ xóa các hàng đơn lẻ hoặc một loạt các hàng từ một tập dữ liệu hiện có.

Hiện tại, để triển khai hệ thống nhật ký "xoay", bạn phải: 1. Tạo bảng mới mỗi ngày (và xóa các bảng cũ nếu cần) 2. Nối dữ liệu vào bảng và truy vấn theo thời gian/date

Tôi thực sự khuyên bạn nên tạo bảng mới cho mỗi ngày. Vì BigQuery tính phí theo lượng dữ liệu được truy vấn, điều này sẽ tiết kiệm nhất cho bạn, thay vì phải truy vấn trên toàn bộ tập dữ liệu khổng lồ mỗi lần.

Nhân tiện - hiện tại bạn đang thu thập dữ liệu của mình bằng cách nào?

+0

gợi ý tốt. Chúng tôi hiện đang lưu trữ nó trong MySQL, kết xuất dữ liệu mà chúng tôi thực sự xử lý thành CSV và tải lên. Tôi đang tìm kiếm bất kỳ giới hạn nào về số lượng bảng trong một tập dữ liệu cụ thể, nhưng không thể tìm thấy bất kỳ giới hạn nào. Điều này có đúng không có giới hạn? – Daum

+1

Chỉ là một FYI nếu bạn đang sử dụng phương pháp xoay bảng - BigQuery hiện hỗ trợ thời gian hết hạn của bảng. Bạn có thể cập nhật bảng bằng công cụ bq bằng cách sử dụng 'bq update --expiration dataset.table'. –

+0

@Daum BigQuery không có giới hạn về số lượng bảng bạn có thể tạo cho mỗi tập dữ liệu. –

2

Ngoài ra, nếu có, bạn có thể thử OMIT RECORD IF của BigQuery, để trả lại tất cả các mục ngoại trừ những mục bạn muốn xóa. Sau đó, tạo một bảng mới từ kết quả truy vấn đó.

(ví dụ lấy từ tài liệu tham khảo Google)

SELECT * FROM 
    publicdata:samples.github_nested 

OMIT RECORD IF 
    COUNT(payload.pages.page_name) <= 80; 

Nguồn: https://cloud.google.com/bigquery/query-reference

13

Đối xóa các bản ghi trong Big truy vấn, trước tiên bạn phải cho phép sql chuẩn.

Các bước để tạo điều kiện cho tiêu chuẩn sql

  1. Mở giao diện web BigQuery.
  2. Nhấp vào Truy vấn soạn thư.
  3. Nhấp vào Hiển thị tùy chọn.
  4. Bỏ chọn hộp kiểm Sử dụng SQL kế thừa.

này sẽ cho phép các BigQuery động Manipulation Language (DML) để cập nhật, chèn và xóa dữ liệu từ các bảng BigQuery

Bây giờ, bạn có thể viết các truy vấn SQL đơn giản để xóa các bản ghi (s)

DELETE [FROM] target_name [alias] WHERE condition 

Bạn có thể tham khảo: https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#delete_statement

Các vấn đề liên quan