0

У меня есть таблицы 2 MySQL, как указано нижеCQL-импорт динамической карта Запись в Кассандре

Таблица сотрудники:

идентификатор ИНТ, имя VARCHAR

Таблица Письмо

emp_id INT, email_add varchar

Таблица электронной почты & Сотрудник связан работником. ID = emails.emp_id

У меня есть записи, как:

MySQL> выберите * от работника;

id  name 
1   a  
2   b 
3   c 

mysql> select * from emails;

empd_id emails   

    1  [email protected] 
    1  [email protected] 
    1  [email protected] 
    2  [email protected] 
    2  [email protected] 
    3  [email protected] 

6 строк в наборе (0,02 сек)

Теперь я хочу импортировать данные в Кассандре ниже 2 форматов

--- формат 1 ---

стол в Кассандре : emp_details:

идентификатор, имя, адрес электронной карты {текст, текст}

т.е. SH данные ульд быть как

1, а, { 'EMAIL_1': '[email protected]', 'EMAIL_2: '[email protected]',' EMAIL_3' :'[email protected] '}

2, b, {'email_1':'[email protected] ',' email_2 ':' [email protected] '}

3, c, {' email_1 ':' [email protected] ' }

---- формат 2 ----

я хочу, чтобы иметь динамические столбцы как

ид , имя, email_1, email_2, email_3 .... email_n

Пожалуйста, помогите мне за то же самое. Моя основная проблема заключается в том, чтобы импортировать данные из mysql в более, чем 2-х форматах.

+0

dse sqoop cql-import не поддерживает динамические столбцы. – mikea

ответ

0

Редактировать: список изменений на карту

Логически, вы не ожидаете, пользователь, чтобы иметь> 1000 писем, я хотел бы предложить использовать Map < текста, текст > или даже список < текста >. Это хорошо подходит для коллекций CQL.

CREATE TABLE users (
    id int, 
    name text, 
    emails map<text,text>, 
    PRIMARY KEY(id) 
); 

INSERT INTO users(id,name,emails) 
VALUES(1, 'a', {'email_1': '[email protected]', 'email_2': '[email protected]', 'email_3': '[email protected]'}); 
+0

спасибо doan, я хочу, чтобы карта с именем ключа была такой же, как значение столбца из mysql. Я не хочу исправлять имя ключа внутри карты. он должен исходить от mysql. Что-то вроде 2, b, {'email_1':'[email protected] ',' email_2 ':' [email protected] '}, где email_1 также поступает из mysql db –

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