Giả sử bạn có tệp csv, bộ chứa blob và quyền truy cập vào không gian làm việc của DataBricks. Mục đích của blog nhỏ này là để cho thấy quy trình từ việc có một tệp trên máy tính cục bộ của bạn đến việc đọc dữ liệu vào databricks dễ dàng như thế nào. Tôi sẽ thực hiện quá trình tải tệp csv lên một vùng chứa blob màu xanh theo cách thủ công và sau đó đọc nó trong DataBricks bằng mã python
Bước 1. Tải tệp lên vùng chứa blob của bạn
Điều này có thể được thực hiện đơn giản bằng cách điều hướng đến vùng chứa blob của bạn. Từ đó, bạn có thể nhấp vào nút tải lên và chọn tệp bạn quan tâm. Sau khi được chọn, bạn cần nhấp vào nút tải lên trong thanh tải lên. Xem ảnh chụp màn hình bên dưới
Sau khi tải lên, bạn sẽ có thể xem tệp có sẵn trong vùng chứa blob của mình như hình bên dưới
Bước 2. Nhận thông tin đăng nhập cần thiết cho databricks để kết nối với bộ chứa blob của bạn
Từ cổng thông tin Azure của bạn, bạn cần điều hướng đến tất cả các tài nguyên, sau đó chọn tài khoản lưu trữ blob của mình và từ bên dưới cài đặt, chọn khóa tài khoản. Khi đã có, hãy sao chép khóa bên dưới Key1 vào notepad cục bộ
Bước 3. Định cấu hình DataBricks để đọc tệp
Tại đây, bạn cần điều hướng đến không gian làm việc của databricks [tạo một cái nếu bạn chưa có] và khởi chạy nó. Sau khi khởi chạy, hãy chuyển đến không gian làm việc và tạo sổ ghi chép python mới
Để bắt đầu đọc dữ liệu, trước tiên, bạn cần định cấu hình phiên spark của mình để sử dụng thông tin đăng nhập cho vùng chứa blob của bạn. Điều này đơn giản có thể được thực hiện thông qua tia lửa. conf. đặt lệnh. Chính xác hơn, chúng tôi bắt đầu với những điều sau đây
storage_account_name = 'nameofyourstorageaccount' storage_account_access_key = 'thekeyfortheblobcontainer' spark.conf.set['fs.azure.account.key.' + storage_account_name + '.blob.core.windows.net', storage_account_access_key]
Sau khi hoàn tất, chúng ta cần xây dựng đường dẫn tệp trong vùng chứa blob và đọc tệp dưới dạng khung dữ liệu tia lửa
blob_container = 'yourblobcontainername' filePath = "wasbs://" + blob_container + "@" + storage_account_name + ".blob.core.windows.net/Sales/SalesFile.csv" salesDf = spark.read.format["csv"].load[filePath, inferSchema = True, header = True]
Và chúc mừng, chúng ta đã hoàn thành. Bạn có thể sử dụng lệnh hiển thị để xem dữ liệu của chúng tôi như hình bên dưới
Trong blog này, chúng ta sẽ tìm hiểu cách đọc tệp CSV từ bộ lưu trữ blob và đẩy dữ liệu vào bảng nhóm SQL khớp thần kinh bằng tập lệnh python Azure Databricks. Trong phần 1, chúng ta đã tạo không gian làm việc phân tích khớp thần kinh Azure, nhóm SQL chuyên dụng, trong phần này, chúng ta đã thấy cách tạo nhóm SQL chuyên dụng. Trong blog này, chúng tôi sẽ sử dụng chuỗi kết nối JDBC để kết nối nhóm SQL
Bước 1. Đăng nhập vào cổng Azure. Mở Azure Databricks và nhấp vào không gian làm việc ăn trưa để tạo Notebook mới
- Đố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
- Trong trường Bảng, nhập tên của bảng mà bạn muốn tạo
- Xác minh rằng trường Loại bảng được đặt thành Bảng gốc
- 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ư tạo tệp lược đồ JSON. 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.
7bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- 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, Loại và Chế độ của từng trường.
- Đố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
17 hoặc nhập số hàng tối đa chứa lỗi có thể bỏ qua. Nếu số lượng hàng có lỗi vượt quá giá trị này, công việc sẽ dẫn đến thông báobq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
18 và không thành công. Tùy chọn này chỉ áp dụng cho các tệp CSV và JSONbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.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à
17bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Đố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à
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Đố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à
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Đố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ữ
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 câu lệnh
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
12 DDL. Ví dụ sau tải tệp CSV vào bảng mới bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery
Truy cập BigQuery
Trong trình chỉnh sửa truy vấn, hãy nhập câu lệnh sau
5bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
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 Chạy truy vấn tương tác
bq
Sử dụng lệnh
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
14, chỉ định bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
15 bằng cờ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
16 và bao gồm URI lưu trữ đám mây. 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 ký tự đại diện. 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 \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
10 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 \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
19 và đặt giá trị cho vị trí của bạnCác cờ tùy chọn khác bao gồm
20. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
22. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
24. Ký tự chỉ ranh giới giữa các cột trong dữ liệu. Cảbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
25 vàbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
26 đều được phép sử dụng dấu phân cách tab. Giá trị mặc định làbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
27bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
28. Chuỗi tùy chỉnh tùy chọn đại diện cho giá trị NULL trong dữ liệu CSVbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
29. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
31. 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 \ ./myschema.json
32. Để biểu thị không có ký tự trích dẫn, hãy sử dụng một chuỗi rỗngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
33. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17. Nhiều nhất, 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 \ ./myschema.json
33bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
36. 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 JSONbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17. 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à JSONbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
38. 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 \ ./myschema.json
39,bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
20,bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
21 vàbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
22. Cờ này là tùy chọn khi bạn tạo bảng được phân vùng trên cộtbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
3,bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
24 hoặcbq 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 \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
20. Bạn không thể thay đổi đặc tả phân vùng trên một bảng hiện cóbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
27. 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ênbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
28. Cộtbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
3 hoặcbq 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ạobq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
501. Khi được bật, tùy chọn này yêu cầu người dùng bao gồm mệnh đềbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
502 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, hãy xem Truy vấn các bảng được phân vùngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
503. 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ómbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
504. Khóa Cloud KMS để mã hóa dữ liệu bảngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Để biết thêm thông tin về lệnh
14, hãy xembq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Tham chiếu dòng lệnh
Để 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 load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
8Ở đâu
- vị trí là vị trí của bạn. Cờ
19 là tùy chọn. Ví dụ: nếu bạn đang sử dụng BigQuery ở khu vực Tokyo, thì bạn có thể đặt giá trị của cờ thànhbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
507. Bạn có thể đặt giá trị mặc định cho vị trí bằng cách sử dụng. tập tin bigqueryrcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- định dạng là
15bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- 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à URI lưu trữ đám mây đủ điều kiện hoặc danh sách URI được phân tách bằng dấu phẩy. Ký tự đại diện 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ờ
17 thay vì cung cấp định nghĩa lược đồbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
ví dụ
Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513. Tệp CSV bao gồm hai hàng tiêu đề. Nếu bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
29 không được chỉ định, hành vi mặc định là giả sử tệp không chứa tiêu đềblob_container = 'yourblobcontainername' filePath = "wasbs://" + blob_container + "@" + storage_account_name + ".blob.core.windows.net/Sales/SalesFile.csv" salesDf = spark.read.format["csv"].load[filePath, inferSchema = True, header = True]0
Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào bảng được phân vùng theo thời gian nhập có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
1Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào một bảng được phân vùng mới có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Bảng được phân vùng trên cột bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
526. Lược đồ được xác định trong một tệp lược đồ cục bộ có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
1Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được tự động phát hiện bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
2Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định nội tuyến ở định dạng bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
534______53Ghi chú. Khi bạn chỉ định lược đồ bằng công cụ dòng lệnh bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
535, bạn không thể bao gồm loại bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
536 [ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
537], 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à bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
538. Để bao gồm các mô tả trường, chế độ và loại bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
536, hãy cung cấp tệp lược đồ JSON thay thế. Lệnh sau tải dữ liệu từ nhiều tệp trong
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
540 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. 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 \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
2Lệnh sau tải dữ liệu từ nhiều tệp trong
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
540 vào một bảng có tên là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. 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à bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
50API
Tạo công việc
547 trỏ đến dữ liệu nguồn trong Lưu trữ đám mâybq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
[Tùy chọn] Chỉ định vị trí của bạn trong thuộc tính
548 trong phầnbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
549 của tài nguyên công việcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Thuộc tính
550 phải đủ điều kiện, ở định dạngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
551. Mỗi URI có thể chứa một ký tự đại diện '*'bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Chỉ định định dạng dữ liệu CSV bằng cách đặt thuộc tính
552 thànhbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
15bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Để kiểm tra trạng thái công việc, hãy gọi
554, trong đó job_id là ID của công việc được yêu cầu ban đầu trả vềbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Nếu
555, công việc đã hoàn thành thành côngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Nếu có thuộc tính
556, yêu cầu không thành công và đối tượng đó sẽ bao gồm thông tin mô tả những 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ảibq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Nếu không có
556, công việc đã hoàn tất 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ínhbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
558 của đối tượng công việc được trả lạibq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- Nếu
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 ID đó thành
559 khi gọibq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
560 để 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ếtbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Gọi
560 trên 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ôngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
51Đ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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
52Java
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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
53Nú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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
54PHP
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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
55con 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 ứng dụng khách. phương thức load_table_from_uri[] để 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 LoadJobConfig. thuộc tính lược đồ vào danh sách các đối tượng SchemaField
Xem trên GitHub Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
56hồ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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
57Đ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
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 Phản hồiĐi
58 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
59Nú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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
80con 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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
81Thê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 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
535 cờ công cụ Thuộc tính API BigQueryMô tảGhi nếu trốngKhông được hỗ trợ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
563Chỉ ghi dữ liệu nếu bảng trống. Nối vào bảng bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
564 hoặc bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
565; . Ghi đè lên bảng bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
568 hoặc bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
569 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
570Xó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 KMSNế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. Thêm vào và ghi đè lên dữ liệu bảng được phân vùng.Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery Truy cập BigQuery Sử dụng câu lệnh Bảng điều khiển
7 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 hoặc nhập số hàng tối đa chứa lỗi có thể bỏ qua. Nếu số lượng hàng có lỗi vượt quá giá trị này, công việc sẽ dẫn đến thông báo bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
18 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 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
10 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
10 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
SQL
12 DDL. Ví dụ sau nối tệp CSV vào bảng bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
Trong bảng điều khiển Google Cloud, hãy truy cập trang BigQuery
Truy cập BigQuery
Trong trình chỉnh sửa truy vấn, hãy nhập câu lệnh sau
83bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
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 Chạy truy vấn tương tác
bq
Sử dụng lệnh
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
14, chỉ định bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
15 bằng cờ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
16 và bao gồm URI lưu trữ đám mây. 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 ký tự đại diệnCung 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 \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 là bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
10 và bảng đích tồn tại, thì lược đồ của bảng đích sẽ được sử dụngChỉ định cờ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
568 để ghi đè lên bảng. Sử dụng cờ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
564 để 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ệuCó 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 \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
19 và đặt giá trị cho vị trí của bạnCác cờ tùy chọn khác bao gồm
20. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
22. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
10bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
24. Ký tự chỉ ranh giới giữa các cột trong dữ liệu. Cảbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
25 vàbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
26 đều được phép sử dụng dấu phân cách tab. Giá trị mặc định làbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
27bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
28. Chuỗi tùy chỉnh tùy chọn đại diện cho giá trị NULL trong dữ liệu CSVbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
29. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
31. 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 \ ./myschema.json
32. Để biểu thị không có ký tự trích dẫn, hãy sử dụng một chuỗi rỗngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
33. 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 \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17. Nhiều nhất, 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 \ ./myschema.json
33bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
36. 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 JSONbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
17. 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à JSONbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
504. Khóa Cloud KMS để mã hóa dữ liệu bảngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
84ở đâu
- vị trí là vị trí của bạn. Cờ
19 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. tập tin bigqueryrcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- định dạng là
15bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- 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à URI lưu trữ đám mây đủ điều kiện hoặc danh sách URI được phân tách bằng dấu phẩy. Ký tự đại diện 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ờ
17 thay vì cung cấp định nghĩa lược đồbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
ví dụ
Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 và ghi đè lên bảng có tên bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định bằng tính năng tự động phát hiện lược đồ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
85Lệnh sau tải dữ liệu từ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
510 và nối thêm dữ liệu vào bảng có tên bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
13 trong bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
512. Lược đồ được xác định bằng tệp lược đồ JSON — bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
513 bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
86API
Tạo công việc
547 trỏ đến dữ liệu nguồn trong Lưu trữ đám mâybq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
[Tùy chọn] Chỉ định vị trí của bạn trong thuộc tính
548 trong phầnbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
549 của tài nguyên công việcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Thuộc tính
550 phải đủ điều kiện, ở định dạngbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
551. 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 ký tự đại diện cũng được hỗ trợbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Chỉ định định dạng dữ liệu bằng cách đặt thuộc tính
820 thànhbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
15bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Chỉ định tùy chọn ghi bằng cách đặt thuộc tính
822 thànhbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
570 hoặcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
567bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Đ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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
87Java
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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
88Nú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 load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
825 trong tham số bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
826 thành bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
827Xem trên GitHub Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
89Trướ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 Phản hồi
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
0con 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 LoadJobConfig. write_disposition vào hằng số SourceFormat
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
570Xem trên GitHub Phản hồi
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 cờ
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
829Ghi chú. Theo mặc định, nếu tệp CSV chứa ký tự ASCII bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 [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 \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17 và các ký tự điều khiển ASCII khác, hãy đặt bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
832 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 ký tự ASCII
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
17, 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à 1byte. Các cột có loại BYTES phải được mã hóa dưới dạng Base64
Ngày tháng. 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
5Ngày giờ. Các cột có loại DATETIME phải ở định dạng
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
835Môn Đị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.
836bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- GeoJSON.
837bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
- WKB được mã hóa hex.
838bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Trước khi tải dữ liệu ĐỊA LÝ, hãy đọc thêm Đang tải dữ liệu không gian địa lý
khoảng thời gian. Các cột có loại
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
839 phải ở định dạng bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
840, 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ệ
841bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
842bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
843bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Để tải dữ liệu INTERVAL, bạn phải sử dụng lệnh
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
14 và sử dụng cờ bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
845 để 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ểnJSON. Dấu ngoặc kép được thoát ra bằng cách sử dụng chuỗi hai ký tự
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
846. Để biết thêm thông tin, hãy xem ví dụ về tải dữ liệu JSON từ tệp CSVThời gian. Các cột có loại THỜI GIAN phải ở định dạng
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
847Dấ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 có thể được định dạng là
5 hoặcbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
849bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
Phần dấu thời gian phải được định dạng là
850 [giây và phân số của giây là tùy chọn]bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
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 bộ chỉ định vùng UTC [
851]. Để biết thêm thông tin, xem Múi giờbq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
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 quy tắc đặt tên cho các cột 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 load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
852. 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ể thay đổi tên theo cách thủ công 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ệnBạ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 \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
29 để 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ộtCSV 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
bq load \
--source_format=CSV \
mydataset.mytable \
gs://mybucket/mydata.csv \
./myschema.json
535 hoặc API