-
spark tables - managed vs unmanaged(external) tablesspark 2021. 7. 25. 18:54
Managed Table
- table metadata / data 를 spark 에서 관리
- table drop 시 metadata 와 data 모두 삭제
- data 는 spark.sql.warehouse.dir 에 정의된 곳에 저장 (spark.sql.warehouse.dir 는 cluster 에서 관리됨 - user 가 지정해 사용할 수 없다)
- bucketing, sorting 해 테이블 생성 가능
Unmanaged Table
- table metadata 는 spark 에서 관리되고, data 는 user 가 지정한 특정 위치(LOCATION) 에서 관리된다.
- 이미 존재하는 데이터를 대상으로 테이블 생성이 가능
- 이미 존재하는 데이터가 아닌 새로운 데이터로 테이블을 생성하는 것도 가능 (bucketing, sorting 적용도 가능?)
- table drop 시 metadata 만 삭제 (data 는 보존된다)
Parquet / Avro 등의 포맷으로 저장하지 할 수 있는데, 왜 Table 형태로 저장 하나?
- DB 에 데이터로 저장해 JBDC 등을 이용해 SQL 로 조회할 수 있다.
Mangede Table Code 예제
참고: https://www.udemy.com/course/apache-spark-programming-in-scala
'spark' 카테고리의 다른 글
broadcast join 과 bucket join (0) 2021.07.26 spark managed tables - partitionBy, bucketBy, sortBy (0) 2021.07.25 데이터의 partition 수와 partition 별로 레코드 수 확인 방법 (0) 2021.07.18 spark 에서 schema 를 적용해 데이터 읽기 (0) 2021.07.18 spark 에서 groupByKey 로 특정 column 기준 unique row 만 남기기 (0) 2021.07.16