250x250
๋ฐ˜์‘ํ˜•
arkhyeon
arkhyeon
arkhyeon
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (88)
    • Spring (5)
    • Java (4)
    • React (25)
      • TypeScript (6)
      • JavaScript (1)
      • Jest (9)
    • NEXT (8)
    • SQL (1)
    • React native (1)
    • CSS (3)
    • Web (1)
    • Git (3)
    • ETC (6)
    • ๋น…๋ฐ์ดํ„ฐDB (8)
    • Docker (4)
    • Tool (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • javascript wss
  • HIVE
  • node WebSocket
  • react typescript
  • react loading
  • Spring WebSocket
  • websocket
  • react19
  • javasciprt websocket
  • WSS
  • react websocket
  • docker tomcat
  • react
  • react jest
  • react spring websocket
  • kudu
  • usetransition
  • react usetransition
  • jest
  • websocket server

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
arkhyeon

arkhyeon

๋น…๋ฐ์ดํ„ฐDB

Apache Impala + Kudu Query

2024. 2. 1. 10:02
728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ’ก Impala๋Š” ์ฃผ๋กœ ๋ถ„์„ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์–ด ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ฟผ๋ฆฌ ์‹คํ–‰๊ณผ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜์ด ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ, ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Kudu์™€ Impala๋Š” ๋ฐ€์ ‘ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด, ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

Kudu๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๋น ๋ฅธ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. ๋˜ํ•œ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
 

Kudu ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ

๐Ÿ’ก ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‚˜ 1.7 ๊ธฐ์ค€ Table Create, Select๋งŒ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค. Java, C++ ๋“ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด CRUD ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค. https://github.com/apache/kudu/tree/master/examples/java/java-example Kudu M

arkhyeon.tistory.com

Impala Table Create Insert

Update, Delete๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

CREATE TABLE foo1 (
 id INT primary key,
 col1 STRING, 
 col2 STRING
);

INSERT INTO foo1 VALUES (1, "Michoba", "Alice");

Impala + Kudu Table Create Upsert Insert Delete Update

Create

CREATE TABLE emp
(
 id INT,
 name STRING,
 dept STRING,
 resign timestamp,
 PRIMARY KEY (id, name)
)
STORED AS KUDU;

CREATE TABLE emp_dst
(
 id INT,
 name STRING,
 dept STRING,
 resign timestamp,
 PRIMARY KEY (id, name)
)
STORED AS KUDU;

Insert

insert into emp (id, name, dept, resign) values (1, 'Phil', 'Resources', '2023-12-12');
insert into emp (id, name, dept, resign) values (2, 'John', 'Dev', '2023-10-28');
insert into emp (id, name, dept, resign) values (3, 'Corny', 'Dev', '2022-01-12');
insert into emp (id, name, dept, resign) values (4, 'Henka', 'Training', '2022-05-19');
insert into emp (id, name, dept, resign) values (5, 'Kar', 'Management', '2022-03-16');
insert into emp (id, name, dept, resign) values (6, 'Locy', 'Resources', '2023-11-17');
insert into emp (id, name, dept, resign) values (7, 'Domenico', 'Sales', '2022-11-24');
insert into emp (id, name, dept, resign) values (8, 'Marie', 'Dev', '2024-01-10');
insert into emp (id, name, dept, resign) values (9, 'Jordan', 'Training', '2022-08-21');
insert into emp (id, name, dept, resign) values (10, 'Bette', 'Dev', '2022-07-15');

insert into emp_dst (id, name, dept, resign) values (1, 'Phil', 'Dev', '2023-12-12');
insert into emp_dst (id, name, dept, resign) values (2, 'John', 'Dev', '2023-10-28');
insert into emp_dst (id, name, dept, resign) values (3, 'Corny', 'Dev', '2022-01-12');
insert into emp_dst (id, name, dept, resign) values (4, 'Henka', 'Dev', '2022-05-19');
insert into emp_dst (id, name, dept, resign) values (5, 'Kar', 'Dev', '2022-03-16');

Upsert

UPSERT INTO emp
SELECT * FROM emp_dst
WHERE id < 3;

Delete

DELETE from emp
where id < 2;

DELETE from emp_dst
where dept = 'Dev';

Update / Join

UPDATE emp
SET emp.dept = CONCAT(B.name,'โ˜…')
FROM emp
JOIN emp_dst as B ON qkdwngus.id = B.id;

Upsert ํ•ด๋„ ๋ฐ์ดํ„ฐ ๋ณ€ํ™” ์—†๋Š” ํ˜„์ƒ - Upsert Error

๐Ÿ’กJDBC๋ฅผ ์ด์šฉํ•œ Upsert ์‹œ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๊ณ  2๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

1. Connection URL์— UseNativeQuery=1 ์ถ”๊ฐ€

 - JAVA Connection URL : "jdbc:impala://<<hostname>>:21050;UseNativeQuery=1"

 - DB Tool

 

2. kudu-impala bash shell์ง์ ‘ ์ฟผ๋ฆฌ

//docker ์ ‘์† ์ด๋ฆ„ ์ฐพ๊ธฐ
$ docker ps 
//์ ‘์†
$ docker exec -it kudu-impala bash

> CREATE TABLE foo1 (
>  id INT primary key,
>  col1 STRING, 
>  col2 STRING
> )
> PARTITION BY HASH(id) PARTITIONS 3 
> STORED AS KUDU;

> CREATE TABLE foo2 (
>  id INT primary key,
>  col1 STRING, 
>  col2 STRING
> )
> PARTITION BY HASH(id) PARTITIONS 3 
> STORED AS KUDU;

> INSERT INTO foo1 VALUES (1, "Michoba", "alice");
> INSERT INTO foo2 select id, col1, NULL from foo1;

> select * from foo2;
+----+---------+------+
| id | col1    | col2 |
+----+---------+------+
| 1  | Michoba | null |
+----+---------+------+

> UPSERT INTO foo2 (id, col2) select id, col2 from foo1;

> select * from foo2;
+----+---------+-------+
| id | col1    | col2  |
+----+---------+-------+
| 1  | Michoba | alice |
+----+---------+-------+
  1.  
728x90
๋ฐ˜์‘ํ˜•

'๋น…๋ฐ์ดํ„ฐDB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

KUDU Docker JAVA API  (1) 2024.02.05
Kudu ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ  (1) 2024.02.01
Presto JDBC ์—ฐ๊ฒฐ  (1) 2024.01.23
Single Store JDBC ์—ฐ๊ฒฐ  (0) 2024.01.23
Hive Create Update Delete Select Table  (0) 2024.01.23
    '๋น…๋ฐ์ดํ„ฐDB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • KUDU Docker JAVA API
    • Kudu ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ
    • Presto JDBC ์—ฐ๊ฒฐ
    • Single Store JDBC ์—ฐ๊ฒฐ
    arkhyeon
    arkhyeon

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”