2016-12-09 5 views
0

С последней ночи я читал bigquery documentation и очень мало разбираюсь в этом. Он рассказывает о загрузке данных с помощью разных методов, но не говорит, как создать таблицу, в которую я собираюсь загрузить данные. Когда я использую веб-интерфейс, он ожидает, что я выйду из схемы. В моей таблице более 400 столбцов. Я не буду набирать сотни имен столбцов, типов и длин.Создать синтаксис таблицы SQL в Google Bigquery

Я загрузил сотни ГБ данных в формате CSV в ковш Google. В файлах csv нет имен столбцов. У меня есть схема в формате sql, которую я предпочитаю использовать.

Если я пытаюсь создать таблицу с помощью запроса я получаю ошибку уже на линии 2, которая говорит,

"Error: Encountered "" at line 2, column 1." 

CREATE TABLE [example-mdi:myData_1.ST] (
`ADDRESS_ID` varchar(9), 
`INDIVIDUAL_ID` varchar(2), 
`FIRST_NAME` varchar(25), 
`LAST_NAME` varchar(2),... 

Как я могу сделать это или то, что это правильный путь?

ответ

1

При создании таблицы в веб-интерфейсе - вы можете ввести поле схемы на поле (Edit as Fields режим - режим по умолчанию), или вы можете ввести схему как текст (Edit as Text режим)
Так что, если у вас уже есть схемы в SQL (вам может понадобиться слегка настроить его для соответствия BigQuery)

Дополнительная информация о creating tables с разными клиентами (в разделе «Мы, BUI» выше, не указан, так вот почему вы его пропустили. Думаю,)

PS На сегодняшний день, BigQuery лань не поддерживает DDL - так CREATE TABLE не доступен

Update

На сегодняшний день - 17 января 2018 - BigQuery поддержка data definition language теперь в Beta

0

Михаил является право и получает кредит за ответ. Если вы так же медленны, как и я, вам понадобится больше деталей, потому что после того, как он указал мне на правильный путь, все равно потребовалось некоторое время, чтобы выяснить, о чем он говорит, и как это сделать.

Когда вы находитесь в пользовательском интерфейсе create table, нажмите ссылку «редактировать как текст».

enter image description here

Во входном текстовом поле, которое выскакивает вы войдете что-то вроде:

ADDRESS_ID:string, 
INDIVIDUAL_ID:string, 
First_name:string, 
Last_name:string... 

дефис не разрешается.

+0

рад, что вы это получили: o) - подумал, что это очевидно. в следующий раз постараюсь быть еще более подробным: o) –

+0

Сначала я не заметил изменения как текст или для чего он был. Затем я не знал, что туда положить. Я пробовал без запятых и получил ошибку. Добавлены запятые и получили еще одну ошибку о дефис. Воссоздал строку, заменяющую дефисы символами подчеркивания, и это сработало. Я до сих пор не знаю, как указать длину поля, но я предполагаю, что это не имеет значения. –

+0

в BigQuery STRING - это данные переменной длины (Unicode), поэтому длина не должна быть установлена ​​ –

1

Вы можете использовать оператор CREATE TABLE для создания таблицы с использованием стандартного SQL. В вашем случае заявление будет выглядеть примерно так:

CREATE TABLE `example-mdi.myData_1.ST` (
    `ADDRESS_ID` STRING, 
    `INDIVIDUAL_ID` STRING, 
    `FIRST_NAME` STRING, 
    `LAST_NAME` STRING, 
    ... 
); 
+0

Было ли это недавно добавлено? Я почти уверен, что это было не так год назад. По общему признанию, я ушел на BigQuery около года назад, потому что он не смог загрузить мои данные в таблицы после того, как я потратил неделю на его загрузку. Мне удалось настроить локально размещенный сервер с одним узлом с помощью MapD. Я получал числа, сбитые на столе размером 400 ГБ, примерно в 400 мс, где BigQuery занимал 2-4 с на столе в 30 ГБ. –

+0

'CREATE TABLE' был выпущен сегодня. Я добавил это как ответ, если кто-то другой встретит этот вопрос. –

Смежные вопросы