Tài liệu này mô tả cách tạo bảng có cột
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, chèn dữ liệu JSON vào bảng BigQuery và truy vấn dữ liệu JSONTổng quan
JSON là định dạng được sử dụng rộng rãi cho phép dữ liệu bán cấu trúc vì nó không yêu cầu lược đồ. Các ứng dụng có thể sử dụng phương pháp "lược đồ khi đọc", trong đó ứng dụng nhập dữ liệu và sau đó truy vấn dựa trên các giả định về lược đồ của dữ liệu đó. Cách tiếp cận này khác với loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
2 trong BigQuery, loại này yêu cầu một lược đồ cố định được thực thi cho tất cả các giá trị được lưu trữ trong một cột thuộc loại SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
2Bằng cách sử dụng loại dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, bạn có thể nhập JSON bán cấu trúc vào BigQuery mà không cần cung cấp sơ đồ cho dữ liệu JSON trả trước. Điều này cho phép bạn lưu trữ và truy vấn dữ liệu không phải lúc nào cũng tuân theo các loại dữ liệu và lược đồ cố định. Bằng cách nhập dữ liệu JSON dưới dạng loại dữ liệu SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, BigQuery có thể mã hóa và xử lý từng trường JSON riêng lẻ. Sau đó, bạn có thể truy vấn giá trị của các trường và phần tử mảng trong dữ liệu JSON bằng cách sử dụng toán tử truy cập trường, giúp truy vấn JSON dễ sử dụng và tiết kiệm chi phíHạn chế
- Nếu bạn sử dụng tác vụ tải hàng loạt để nhập dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 vào bảng, thì dữ liệu nguồn phải ở định dạng CSV, Avro hoặc JSON. Các định dạng tải hàng loạt khác không được hỗ trợ - Kiểu dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 có giới hạn lồng nhau là 500 - Bạn không thể sử dụng SQL kế thừa để truy vấn một bảng có chứa các loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 - Không thể áp dụng chính sách truy cập cấp hàng trên các cột JSON
Để tìm hiểu về các thuộc tính của kiểu dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, hãy xemTạo bảng có cột JSON
Bạn có thể tạo một bảng trống có cột JSON bằng cách sử dụng SQL hoặc bằng cách sử dụng công cụ dòng lệnh
+--------------------------------+ | pt | +--------------------------------+ | {"coordinates":[10,20],"id":1} | +--------------------------------+0
Sử dụng câu lệnh và khai báo một cột có kiểu SQL
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0
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
CREATE TABLE mydataset.table1[ id INT64, cart 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
bq
Sử dụng lệnh và cung cấp lược đồ bảng với kiểu dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0bq mk --table mydataset.table1 id:INT64,cart:JSON
Bạn không thể phân vùng hoặc nhóm một bảng trên các cột JSON, vì các toán tử so sánh và đẳng thức không được xác định trên loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0Tạo các giá trị JSON
Bạn có thể tạo các giá trị
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 theo các cách sau- Sử dụng SQL để tạo một
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 chữ - Sử dụng hàm để chuyển đổi một chuỗi thành kiểu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 - Sử dụng hàm để chuyển đổi kiểu SQL thành kiểu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0
Tạo một chữ JSON
Ví dụ sau sử dụng câu lệnh DML để chèn một ký tự
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 vào một bảngINSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];
Chuyển đổi một chuỗi thành JSON
Ví dụ sau chuyển đổi dữ liệu JSON được lưu trữ dưới dạng chuỗi thành loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 bằng cách sử dụng hàm. Ví dụ chuyển đổi một cột từ một bảng hiện có thành loại SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 và lưu kết quả vào một bảng mớiCREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
Việc sử dụng trong ví dụ này đảm bảo rằng mọi lỗi chuyển đổi đều được trả về dưới dạng giá trị
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7
Chuyển đổi một loại SQL thành JSON
Ví dụ sau đây chuyển đổi một giá trị SQL
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
2 thành một loại SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, bằng cách sử dụng hàmSELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
Kết quả là như sau
+--------------------------------+ | pt | +--------------------------------+ | {"coordinates":[10,20],"id":1} | +--------------------------------+
Nhập dữ liệu JSON
Bạn có thể nhập dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 vào bảng BigQuery theo các cách sau- Sử dụng công việc tải hàng loạt để tải vào các cột
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 từ các định dạng sau- CSV
- Sử dụng API ghi bộ lưu trữ BigQuery
- Sử dụng API phát trực tuyến
3 kế thừabq load --source_format=CSV mydataset.table1 file1.csv id:INTEGER,json_data:JSON bq show mydataset.table1 Last modified Schema Total Rows Total Bytes ----------------- -------------------- ------------ ------------- 22 Dec 22:10:32 |- id: integer 3 63 |- json_data: json
Tải từ tệp CSV
Ví dụ sau giả định rằng bạn có một tệp CSV có tên
bq load --source_format=CSV mydataset.table1 file1.csv id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
4 chứa các bản ghi sau1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"
Lưu ý rằng cột thứ hai chứa dữ liệu JSON được mã hóa dưới dạng chuỗi. Điều này liên quan đến việc thoát chính xác các trích dẫn cho định dạng CSV. Ở định dạng CSV, 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.table1 file1.csv id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
5Để tải tệp này bằng công cụ dòng lệnh
+--------------------------------+ | pt | +--------------------------------+ | {"coordinates":[10,20],"id":1} | +--------------------------------+0, hãy sử dụng lệnh
bq load --source_format=CSV mydataset.table1 file1.csv id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
Tải từ các tệp JSON được phân tách bằng dòng mới
Ví dụ sau giả định rằng bạn có một tệp tên là
bq load --source_format=CSV mydataset.table1 file1.csv id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
8 chứa các bản ghi sau{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}
Để tải tệp này bằng công cụ dòng lệnh
+--------------------------------+ | pt | +--------------------------------+ | {"coordinates":[10,20],"id":1} | +--------------------------------+0, hãy sử dụng lệnh
bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
Sử dụng API ghi lưu trữ
Bạn có thể sử dụng API ghi lưu trữ để nhập dữ liệu JSON. Ví dụ sau sử dụng API ghi lưu trữ
Xác định bộ đệm giao thức để giữ dữ liệu phát trực tuyến được tuần tự hóa. Dữ liệu JSON được mã hóa dưới dạng chuỗi. Trong ví dụ sau, trường
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}1 chứa dữ liệu JSON
bq mk --table mydataset.table1 id:INT64,cart:JSON0
Định dạng dữ liệu JSON cho mỗi hàng dưới dạng giá trị chuỗi
bq mk --table mydataset.table1 id:INT64,cart:JSON1
Nối các hàng vào luồng ghi như được hiển thị trong. Thư viện máy khách xử lý tuần tự hóa thành định dạng bộ đệm giao thức
Sử dụng API phát trực tuyến cũ
Ví dụ sau tải dữ liệu JSON từ một tệp cục bộ và truyền dữ liệu đó tới BigQuery bằng cách sử dụng API truyền trực tuyến cũ
bq mk --table mydataset.table1 id:INT64,cart:JSON2
Để biết thêm thông tin, xem
Truy vấn dữ liệu JSON
Phần này mô tả cách sử dụng Google Standard SQL để trích xuất các giá trị từ JSON. JSON phân biệt chữ hoa chữ thường và hỗ trợ UTF-8 trong cả trường và giá trị
Các ví dụ trong phần này sử dụng bảng sau
bq mk --table mydataset.table1 id:INT64,cart:JSON3
Trích xuất các giá trị dưới dạng JSON
Với loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 trong BigQuery, bạn có thể truy cập các trường trong biểu thức SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 bằng cách sử dụng. Ví dụ sau trả về trường {"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}4 của cột
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}5
bq mk --table mydataset.table1 id:INT64,cart:JSON4
bq mk --table mydataset.table1 id:INT64,cart:JSON5
Để truy cập một phần tử mảng, sử dụng. Ví dụ sau trả về phần tử đầu tiên của mảng
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}6
bq mk --table mydataset.table1 id:INT64,cart:JSON6_______13_______7
Bạn cũng có thể sử dụng toán tử chỉ số con JSON để tham chiếu các thành viên của đối tượng JSON theo tên
bq mk --table mydataset.table1 id:INT64,cart:JSON8
bq mk --table mydataset.table1 id:INT64,cart:JSON5
Đối với các phép toán chỉ số, biểu thức bên trong dấu ngoặc có thể là bất kỳ biểu thức chuỗi hoặc số nguyên tùy ý nào, kể cả các biểu thức không phải là hằng số
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];0_______20_______1
Các toán tử truy cập trường và chỉ số dưới đều trả về các loại
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0, vì vậy bạn có thể xâu chuỗi các biểu thức sử dụng chúng hoặc chuyển kết quả cho các hàm khác có loại SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0Các toán tử này là đường cú pháp cho hàm. Ví dụ: biểu thức
bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
0 tương đương với bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
1Nếu không tìm thấy phần tử có tên đã chỉ định trong đối tượng JSON hoặc nếu mảng JSON không có phần tử với vị trí đã chỉ định, thì các toán tử này sẽ trả về SQL
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];2_______20_______3
Các toán tử đẳng thức và so sánh không được định nghĩa trên kiểu dữ liệu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0. Do đó, bạn không thể sử dụng trực tiếp các giá trị JSON trong các mệnh đề như bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
4 hoặc bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
5. Thay vào đó, hãy sử dụng hàm bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
6 để trích xuất các giá trị trường dưới dạng chuỗi SQL, như được mô tả trong phần tiếp theoTrích xuất các giá trị dưới dạng chuỗi
Hàm trích xuất một giá trị vô hướng và trả về nó dưới dạng chuỗi SQL. Nó trả về SQL
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7 nếu
bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
0 không trỏ đến một giá trị vô hướng trong JSONINSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];4
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];5
Bạn có thể sử dụng hàm
bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
6 trong ngữ cảnh yêu cầu đẳng thức hoặc so sánh, chẳng hạn như mệnh đề bq mk --table mydataset.table1 id:INT64,cart:JSON01 và mệnh đề
bq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON
bq show mydataset.table1
Last modified Schema Total Rows Total Bytes
----------------- -------------------- ------------ -------------
22 Dec 22:10:32 |- id: integer 3 63
|- json_data: json
4. Ví dụ sau hiển thị mệnh đề bq mk --table mydataset.table1 id:INT64,cart:JSON01 lọc theo giá trị JSON
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];6_______20_______7
Ngoài ra, bạn có thể sử dụng hàm trích xuất một chuỗi JSON và trả về giá trị đó dưới dạng SQL
bq mk --table mydataset.table1 id:INT64,cart:JSON04. Ví dụ
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];8
INSERT INTO mydataset.table1 VALUES[1, JSON '{"name": "Alice", "age": 30}'];9
Ngoài , bạn có thể phải trích xuất các giá trị JSON và trả lại chúng dưới dạng một kiểu dữ liệu SQL khác. Các hàm trích xuất giá trị sau đây khả dụng
Để có được loại giá trị JSON, bạn có thể sử dụng hàm
Trích xuất các mảng từ JSON
JSON có thể chứa các mảng JSON, không tương đương trực tiếp với loại
bq mk --table mydataset.table1 id:INT64,cart:JSON12 trong BigQuery. Bạn có thể sử dụng các hàm sau để trích xuất BigQuery
bq mk --table mydataset.table1 id:INT64,cart:JSON13 từ JSON
- trích xuất một mảng và trả về nó dưới dạng
bq mk --table mydataset.table1 id:INT64,cart:JSON
12 của JSON - trích xuất một mảng các giá trị vô hướng và trả về nó dưới dạng
bq mk --table mydataset.table1 id:INT64,cart:JSON
17 giá trị vô hướng
Ví dụ sau sử dụng
bq mk --table mydataset.table1 id:INT64,cart:JSON14 để trích xuất các mảng JSON
CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
0____23_______1Để tách một mảng thành các phần tử riêng lẻ, hãy sử dụng toán tử trả về một bảng có một hàng cho mỗi phần tử trong mảng. Ví dụ sau chọn phần tử
bq mk --table mydataset.table1 id:INT64,cart:JSON20 từ mỗi phần tử của mảng
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}6
CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
2______23_______3Ví dụ tiếp theo tương tự nhưng sử dụng hàm để tổng hợp các giá trị lại thành một mảng SQL
CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
4CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
5Để biết thêm thông tin về mảng, hãy xem Làm việc với mảng trong Google Standard SQL
JSON null
Kiểu
SELECT TO_JSON[STRUCT[1 AS id, [10,20] AS coordinates]] AS pt;
0 có giá trị đặc biệt bq mk --table mydataset.table1 id:INT64,cart:JSON24 khác với kiểu SQL
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7. JSON
bq mk --table mydataset.table1 id:INT64,cart:JSON24 không được coi là giá trị SQL
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7, như ví dụ sau đây cho thấy
CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
6_______23_______7Khi bạn trích xuất một trường JSON có giá trị
bq mk --table mydataset.table1 id:INT64,cart:JSON24, hành vi sẽ phụ thuộc vào hàm
- Hàm
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}
9 trả về JSONbq mk --table mydataset.table1 id:INT64,cart:JSON
24, vì đó là một giá trị JSON hợp lệ - Hàm
6 trả về SQLbq load --source_format=NEWLINE_DELIMITED_JSON mydataset.table1 file1.jsonl id:INTEGER,json_data:JSON bq show mydataset.table1 Last modified Schema Total Rows Total Bytes ----------------- -------------------- ------------ ------------- 22 Dec 22:10:32 |- id: integer 3 63 |- json_data: json
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"
7, vì JSONbq mk --table mydataset.table1 id:INT64,cart:JSON
24 không phải là giá trị vô hướng
Ví dụ sau đây cho thấy các hành vi khác nhau
CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
8CREATE OR REPLACE TABLE mydataset.table_new
AS [
SELECT
id, SAFE.PARSE_JSON[cart] AS cart_json
FROM
mydataset.old_table
];
9Chú ý. Hành vi này không áp dụng cho các giá trị JSON được lưu trữ trong loại bq mk --table mydataset.table1 id:INT64,cart:JSON04. Khi được truyền giá trị
bq mk --table mydataset.table1 id:INT64,cart:JSON04, hàm
{"id": 1, "json_data": 20} {"id": 2, "json_data": "This is a string"} {"id": 3, "json_data": {"id": 10, "name": "Alice"}}9 trả về giá trị SQL
1,20 2,"""This is a string""" 3,"{""id"": 10, ""name"": ""Alice""}"7 thay cho giá trị JSON
bq mk --table mydataset.table1 id:INT64,cart:JSON24