새 프로젝트에서 BigQuery Standard SQL을 사용하고 싶습니다. 그러나 스키마를 정의하는 방법에 대한 예제를 찾을 수 없으며 모든 것이 레거시 SQL을 가리 킵니다. 특히 ARRAY
및 STRUCT
을 사용하고 싶습니다.Standard SQL을 사용하여 BigQuery 스키마를 정의하는 방법은 무엇입니까?
0
A
답변
1
BigQuery에서 테이블을 만드는 한 가지 방법은 API 호출을 사용하는 것입니다. CREATE 테이블 구문이 없습니다. 테이블
BigQuery를 만들기
는새 테이블 as detailed here을 만들 수있는 다양한 방법을 제공합니다
-
는 명령 줄 도구의 BQ의 MK 명령을 사용하거나 경우 BigQuery API 테이블을 사용하여 빈 테이블을 만들 수 있습니다
- .insert() 메소드.
- CSV 또는 JSON 데이터 파일 (압축 또는 비 압축), Avro 파일 또는 Cloud Datastore 백업에서 테이블을로드 할 수 있습니다.
- 쿼리 결과에서 테이블을 만들 수 있습니다.
- 당신은 당신은 클라우드 스토리지에있는 파일을 통해 테이블을 정의 할 수있는 테이블
- 를 복사 할 수 있습니다 당신이 당신의 테이블 스키마를 정의 할 때 표준 SQL 유형을 사용할 수 있습니다
- (Elliotts 답 참조) 업데이트하는 대한 tichet이있다 문서에서도 마찬가지입니다. 투표/별 here. Python samples are on GitHub의
많은 간단 :
def create_table(dataset_name, table_name, project=None):
"""Creates a simple table in the given dataset.
If no project is specified, then the currently active project is used.
"""
bigquery_client = bigquery.Client(project=project)
dataset = bigquery_client.dataset(dataset_name)
if not dataset.exists():
print('Dataset {} does not exist.'.format(dataset_name))
return
table = dataset.table(table_name)
# Set the table schema
table.schema = (
bigquery.SchemaField('Name', 'STRING'),
bigquery.SchemaField('Age', 'INTEGER'),
bigquery.SchemaField('Weight', 'FLOAT'),
)
table.create()
print('Created table {} in dataset {}.'.format(table_name, dataset_name))
2
당신은 표준 SQL 유형을 사용하는 스키마 테이블을 만들 수 있습니다. 당신이 파일 같은 sample_schema.json
에 넣고 경우
{
"a": "ARRAY<STRUCT<x INT64, y STRING>>",
"b": "STRUCT<z DATE>",
"c": "INT64"
}
, 당신은 그것을 bq mk
을 사용하는 테이블을 만들 수 있습니다 : 여기에 유효한 스키마의 예입니다 bq
클라이언트의
bq mk --schema sample_schema.json -t your_dataset.YourTableName
외부는, tables.insert
API는 표준 SQL 유형 이름도 지원합니다.
관련 문제
- 1. Standard SQL을 사용하는 BigQuery 테이블 데코레이터
- 2. BigQuery Standard SQL에서 반복 가능한 샘플링을 수행하는 방법은 무엇입니까?
- 3. 외부 UDF 라이브러리가있는 BigQuery Standard SQL 실행
- 4. 캐스팅 부동 소수점 형 BigQuery Standard Sql
- 5. avro에서 배열에 공용체가있는 스키마를 정의하는 방법은 무엇입니까?
- 6. ActiveRecord 모델에 대한 스키마를 정의하는 방법은 무엇입니까?
- 7. T-SQL을 사용하여 데이터베이스 스키마를 추출하는 방법은 무엇입니까?
- 8. '$'데코레이터를 사용하여 Standard SQL에서 BigQuery 파티션에 액세스 할 수 있습니까?
- 9. BigQuery : 표준 SQL을 사용하는 외부 UDF
- 10. BigQuery : C#에서 표준 SQL을 활성화하는 방법
- 11. Standard SQL - WebUI에서 BigQuery UDF를 사용하는 방법?
- 12. Java 프로그램을 통해 Bigquery 테이블의 스키마를 얻는 방법은 무엇입니까?
- 13. BigQuery : 표준 SQL을 사용하여 여러 데이터 세트 및 테이블 쿼리
- 14. Google BigQuery 제약 조건을 정의하는 방법은 무엇인가요?
- 15. BigQuery Standard SQL에서 타임 스탬프를 초로 변환하는 방법
- 16. 다른 스키마를 반복하고 각각에 대해 일부 SQL을 실행하는 방법은 무엇입니까?
- 17. SQL을 정의하는 방법
- 18. Apache Avro가 JSON을 사용하여 스키마를 정의하는 이유는 무엇입니까?
- 19. sql을 사용하여 xml에서 PK를 정의하는 방법?
- 20. 매개 변수가있는 태그에 XML 스키마를 정의하는 방법은 무엇입니까?
- 21. 이 스키마를 가져 오기 위해 메시지 계약을 정의하는 방법은 무엇입니까?
- 22. MongoDB에서 스프링 보안 사용자 스키마를 정의하는 방법은 무엇입니까?
- 23. dicts 목록을 포함하는 리소스에 대해 Eve에서 스키마를 정의하는 방법은 무엇입니까?
- 24. 복잡한 json 문서에 대해 avro 스키마를 정의하는 방법은 무엇입니까?
- 25. json 스키마를 사용하여 bigquery 테이블을 생성하는 Java 코드
- 26. bq 쉘을 사용하여 BigQuery 용 표준 SQL을 활성화하는 방법
- 27. BigQuery SQL을 사용하여 다른 행과 동일한 날짜를 입력하십시오.
- 28. 스키마를 사용하여 dataframe을 avro로 변환하는 방법은 무엇입니까?
- 29. Stackmob을 사용하여 스키마를 업데이트하는 방법은 무엇입니까?
- 30. BigQuery : 표를 쿼리하는 데있어 standard-sql에 오류가 있습니까?
더 많은 포인터를 가져 주셔서 감사하지만이 예제는'STRUCT' 또는'ARRAY' 유형의 사용을 다루지 않습니다. [bigquery.SchemaField' 구현] (https://github.com/GoogleCloudPlatform/google-cloud-python/blob/44b4d50e59f5d5ace419dcfbe2b04c2e07cadc57/bigquery/google/cloud/bigquery/schema.py#L24-L26)을 확인했습니다.), 문서는 분명히 레거시 SQL에 관한 것입니다. – errordeveloper
당신은 조금 혼란스러워합니다. 따라서 SQL은 테이블 정의가 아닌 쿼리에만 사용됩니다. 테이블을 생성 할 때 거기에 나열된 유형을 사용해야합니다. 레거시 또는 표준 SQL이 아니며 필드 유형의 API 정의입니다. 테이블을 정의 할 때 JSON에 나열된 유형을 사용할 수 있으며 표준 SQL 쿼리를 작성할 때 STRORD 또는 REPEATED 정의 된 필드 유형을 Struct 또는 Array로 간단하게 사용할 수 있습니다. – Pentium10
좋습니다, 감사합니다! 이것은 의미가 있지만, 더 구체적으로 문서화되어야한다고 생각합니다. 새로운 사용자로서 이미 두 가지 언어 버전을 알고 있어야합니다. – errordeveloper