Как использовать клиентский API KUDU для создания таблицы, как мне установить порядок столбцов в первичном ключе? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь написать код, который передает некоторые таблицы из SQL Server в KUDU, используя JAVA KuduClient API.На SQL я получил таблицу с составным первичным ключом (например: PRIMARY KEY ([ID], [DATA_SOURCE])).Как я могу гарантировать, что в KUDU столбцы первичного ключа будут в том же порядке?

ArrayList<ColumnSchema> columns = new ArrayList<>(1);
columns.add(new ColumnSchema.ColumnSchemaBuilder("DATA_SOURCE", 
    Type.STRING).nullable(false).key(true).build());
columns.add(new ColumnSchema.ColumnSchemaBuilder("DB_USER", 
    Type.STRING).nullable(false).build());
columns.add(new ColumnSchema.ColumnSchemaBuilder("ID", 
    Type.INT32).nullable(false).key(true).build());
Schema schema = new Schema(columns);
CreateTableOptions createOptions = new CreateTableOptions()
client.createTable(tableName, schema, createOptions);

1 Ответ

0 голосов
/ 08 мая 2019

Обычно столбцы создаются в том же порядке, в котором они указаны в ArrayList<ColumnSchema> columns.

Однако существуют некоторые ограничения на разработку схемы в Куду.

Столбцы, составляющие первичный ключ, должны быть перечислены первыми в схеме.

Это ограничение отсутствует в SQL-сервере. Следовательно, вы можете быть вынуждены использовать другой порядок столбцов, чем тот, который используется в SQL Server.

P.S: Могу я спросить, зачем вам порядок столбцов такой же, как у SQL Server?

...