카탈로그 콘텐츠 구성하기¶
이 항목에서는 Snowflake Open Catalog에서 내부 카탈로그에 대한 네임스페이스와 테이블을 만드는 방법에 대한 지침을 제공합니다.
중요
카탈로그에 대해 정의된 액세스 권한이 올바르게 적용되도록 하려면 다음 조건을 충족해야 합니다.
디렉터리에는 단일 테이블에 속한 데이터 파일만 포함됩니다.
디렉터리 계층 구조는 카탈로그의 네임스페이스 계층 구조와 일치합니다.
카탈로그에 다음 항목이 포함된 경우를 예로 들겠습니다.
최상위 네임스페이스
namespace1
중첩된 네임스페이스
namespace1a
중첩된 네임스페이스
namespace1a
아래에 그룹화된customers
테이블중첩된 네임스페이스
namespace1a
아래에 그룹화된orders
테이블
카탈로그의 디렉터리 계층 구조는 다음과 같아야 합니다.
/namespace1/namespace1a/customers/<files for the customers table *only*>
/namespace1/namespace1a/orders/<files for the orders table *only*>
카탈로그 콘텐츠 구성하기¶
카탈로그 관리자는 Open Catalog 또는 서드 파티 쿼리 엔진을 사용하여 다음과 같이 카탈로그 콘텐츠를 구성할 수 있습니다.
오브젝트 |
용도 |
---|---|
네임스페이스 |
<ul><li>Open Catalog</li><li>서드 파티 쿼리 엔진</li></ul> |
테이블 |
서드 파티 쿼리 엔진 |
참고
외부 카탈로그의 테이블과 네임스페이스는 Open Catalog에서 읽기 전용입니다. 외부 카탈로그의 카탈로그 콘텐츠를 구성해야 하는 경우 Snowflake를 사용해야 합니다. 자세한 내용은 Snowflake 관리 Apache Iceberg™ 테이블 섹션을 참조하십시오.
이 항목의 예제 코드는 Apache Spark를 사용하여 카탈로그 콘텐츠를 구성하는 방법을 보여줍니다. 예제 코드는 PySpark로 작성되었습니다.
네임스페이스 만들기¶
이 섹션에서는 최상위 네임스페이스 또는 중첩된 네임스페이스를 만드는 방법에 대한 지침을 제공합니다.
중요
네임스페이스를 만들 때 네임스페이스 이름에 마침표나 공백을 사용하지 마십시오.
최상위 네임스페이스 만들기¶
최상위 네임스페이스를 만들려면 Apache Spark나 Open Catalog를 사용하면 됩니다.
예: Apache Spark를 사용하여 최상위 네임스페이스 만들기¶
다음 예제 코드에서는 카탈로그 catalog1
에 namespace1
이라는 최상위 네임스페이스를 생성합니다.
spark.sql("use catalog1").show()
spark.sql("CREATE NAMESPACE namespace1")
Open Catalog를 사용하여 최상위 네임스페이스 만들기¶
Open Catalog에 로그인합니다.
왼쪽 메뉴에서 카탈로그 를 선택합니다.
카탈로그 목록에서 최상위 네임스페이스를 만들려는 카탈로그를 선택합니다.
+ 네임스페이스 를 선택합니다.
이름 에 네임스페이스의 이름을 입력한 다음 제출 을 선택합니다.
중첩된 네임스페이스 만들기¶
중첩된 네임스페이스를 만들려면 Apache Spark나 Open Catalog를 사용하면 됩니다.
예: Apache Spark를 사용하여 중첩된 네임스페이스 만들기¶
다음 예제 코드에서는 카탈로그 catalog1
에 namespace1a
라는 중첩된 네임스페이스를 생성합니다. 이 중첩된 네임스페이스는 기존 최상위 네임스페이스 namespace1
아래에 생성됩니다.
spark.catalog.setCurrentCatalog("catalog1")
spark.sql("use catalog1").show()
spark.sql("CREATE NAMESPACE namespace1.namespace1a")
Open Catalog를 사용하여 중첩된 네임스페이스 만들기¶
Open Catalog에 로그인합니다.
왼쪽 메뉴에서 카탈로그 를 선택합니다.
카탈로그 목록에서 중첩된 네임스페이스를 만들려는 카탈로그를 선택합니다.
네임스페이스 탭에서 중첩된 네임스페이스를 만들려는 상위 네임스페이스로 이동합니다.
+ 네임스페이스 를 선택합니다.
이름 에 중첩된 네임스페이스의 이름을 입력한 다음 제출 을 선택합니다.
테이블 만들기¶
이 섹션에서는 Apache Spark를 사용하여 테이블을 만드는 방법에 대한 예를 제공합니다.
예: 테이블 만들기¶
다음 예제 코드에서는 카탈로그 catalog1
의 중첩된 네임스페이스 namespace1a
아래에 customers
테이블을 생성합니다. 이 테이블은 id
및 custnum
열과 함께 생성되며 두 열의 데이터 타입은 모두 integer
입니다.
spark.sql("use catalog1").show()
spark.sql ("use namespace1.namespace1a")
spark.sql("CREATE OR REPLACE TABLE customers (id int, custnum int) using iceberg")
예: 테이블에 행 삽입하기¶
다음 예제 코드에서는 customers
테이블에 행을 삽입합니다.
spark.sql("use catalog1").show()
spark.sql ("use namespace1.namespace1a")
spark.sql("INSERT INTO customers VALUES (123,456)")