2014-10-23 3 views
3

파일 이름 지정 규칙을 UpperCamelCase로 변경하고 있습니다. 그런 다음 단일 단어 이름 인 경우 BQ는 사례 변경 사항을 무시한다는 사실을 깨달았습니다. 예를 들어, 다음 쿼리를 실행했을 때 'speed', 'ignition', 'latitude'및 'longitude'가 소문자 그대로 남아있는 것을 제외하고 모든 필드 이름이 예상대로 변경되었습니다. 버그인가, 특별한 배려가 있는가? 그것은 글쎄, 내 생각 엔 쿼리를 실행할 때 BQ 필드 이름이 대소 문자를 구분되지 않는 것입니다 우리에게 우리가 새로운 명명 규칙Bigquery : 파일 이름 변경 실패

 SELECT 
      file_date_time AS FileLastModifiedTime 
      ,driver_id AS DriverId 
      ,date_time AS DateTime 
      ,latitude AS Latitude 
      ,longitude AS Longitude 
      ,gps_valid AS GpsValid 
      ,ignition AS Ignition 
      ,speed AS SPEED 
      ,gps_reason AS GpsReason 
      ,zip_code AS ZipCode 
     FROM MyTable 

답변

1

이 버그가 :

한 가지 해결 방법은 중간 이름에 필드 이름을 변경 하위 선택을 사용하는 것입니다. BigQuery에서 필드 이름은 대소 문자를 구분하지 않으므로 별칭을 사용하여 필드의 대/소문자를 변경할 수 있어야합니다. 내부적으로 버그를 제기했습니다.

해결 방법은 no-op 유형 변환을 수행하는 것입니다.이 경우 정확한 대소 문자로 별칭을 적용해야합니다.
예를 들어, 속도가 int 인 경우 : SELECT ... INTEGER(speed) AS SPEED, ...

+0

이 방법 덕분에 대니 감사합니다. 그리고 곧 해결 될 수 있기를 바랍니다. – foxwendy

0

에 수천 개의 테이블에 우리의 빅 데이터를 마이그레이션하는 큰 문제를 주었다. 그러나 데이터 스트리밍을 할 때 필드 이름은 대소 문자를 구분합니다. 파일 이름이 '점화'인 레코드는 '점화'가 포함 된 테이블로 성공적으로 스트리밍되지 않기 때문에

2

이것은 다른 대답에서 언급 된 이유 때문에 BQ 스키마 생성의 단점입니다.

SELECT LatitudeTmp AS Latitude FROM 
    (SELECT latitude AS LatitudeTmp FROM MyTable)