Foundry SQL 사용 예제
다음 경로, 객체 RID와 데이터 값은 설명용입니다. 실제 리소스와 권한을 확인한 뒤 실행하며 쓰기 문장은 실제 데이터를 생성하거나 바꿉니다. 표 예제는 Furnace의 Data mode, 객체 예제는 Ontology SQL의 Object mode를 사용합니다.
데이터셋 생성과 조회
Parquet 출력을 만든 뒤 특정 열 값으로 조회하는 예시입니다.
-- Create a dataset
CREATE OR REPLACE TABLE `/path/dataset-name` USING parquet AS
SELECT *
FROM `/path/dataset-input`;
-- Query a dataset
SELECT *
FROM `/path/dataset-name`
WHERE column = 'value';
Iceberg 생성과 행 변경
프로젝트에서 Iceberg 테이블을 사용하도록 설정되어 있어야 합니다. 다음은 빈 테이블 생성, 행 추가, 조건부 수정과 삭제입니다.
-- Create an empty Iceberg table
CREATE TABLE `/path/table-name` (
id INT,
name STRING
)
USING iceberg;
-- Insert rows
INSERT INTO `/path/table-name`
VALUES (1, 'apple'), (2, 'pear');
-- Update rows
UPDATE `/path/table-name`
SET name = 'clementine'
WHERE id = 2;
-- Delete rows
DELETE FROM `/path/table-name`
WHERE id = 1;
객체 유형 조회
객체 유형 RID와 속성 API 이름을 사용하여 Engineering 부서 직원을 조회합니다.
SELECT employeeId, firstName, department
FROM `ri.ontology.main.object-type.<employee-rid>`
WHERE department = 'Engineering';
다대다 관계
Person과 Car의 링크 테이블을 사용하여 특정 사람이 운전하는 자동차를 찾습니다. car는 이 예제의 자동차 유형 참조이며 실제 사용할 식별자는 조회 화면에서 선택한 객체 유형에 맞춥니다. 링크 열의 방향과 이름은 Ontology SQL을 확인합니다.
-- Find all cars driven by a specific person
SELECT c.*
FROM `ri.ontology.main.relation.<relation-rid>` AS linkTable
INNER JOIN `car` AS c
ON c.`carId` = linkTable.`person_vehicles`
WHERE linkTable.`car_drivers` = 'person-123';
Iceberg 위치 오류
Output folder is not enabled for Iceberg tables. Please use a different format.는 해당 환경이나 출력 프로젝트에서 Iceberg가 활성화되지 않은 경우 발생할 수 있습니다. Parquet 같은 다른 형식으로 생성하려면 USING parquet를 명시합니다. Iceberg가 필요한 경우 Palantir Support를 통해 활성화 조건을 확인합니다. 다른 형식을 선택하면 Iceberg의 행 변경 기능까지 동일하게 제공되는 것은 아닙니다.