사용
derived_table: {
create_process: {
sql_step:
CREATE TABLE ${SQL_TABLE_NAME}
(customer_id int(11),
lifetime_orders int(11)) ;;
sql_step:
INSERT INTO ${SQL_TABLE_NAME}
(customer_id,
lifetime_orders)
SELECT customer_id, COUNT(*)
AS lifetime_orders
FROM order
GROUP BY customer_id ;;
}
}
|
계층 구조
create_process |
기본값
없음
수락
하나 이상의 sql_step 하위 매개변수
|
정의
데이터베이스 언어에서 맞춤 데이터 정의 언어 (DDL) 명령어를 사용하는 경우 create_process를 사용하여 영구 파생 테이블 (PDT)을 만들 수 있습니다. create_process는 나열된 순서대로 실행될 SQL 문 목록을 정의합니다. 각 개별 SQL 문은 sql_step 하위 매개변수를 사용하여 지정됩니다. 각 sql_step 하위 매개변수에는 유효한 SQL 쿼리가 포함될 수 있습니다. sql_step 하위 매개변수를 여러 개 정의할 수 있으며, 지정된 순서대로 한 번에 하나씩 실행됩니다. Looker는 Looker의 일반적인 오류 수정 없이 sql_step 하위 매개변수의 문을 그대로 실행합니다.
예를 들어 일부 데이터베이스 언어는 단일 SQL 문으로 실행되는 CREATE TABLE as SELECT를 지원하지 않으며 별도의 SQL 문이 필요합니다. 따라서 이러한 언어에서는 기존 SQL 기반 영구 파생 테이블을 만들 수 없습니다. create_process 매개변수는 순서대로 실행되는 별도의 SQL 문의 목록을 만들어 PDT를 만드는 대체 방법을 제공합니다.
create_process를 사용하여 Google 예측 BigQuery ML 머신러닝 모델과 같은 언어를 지원할 수도 있습니다.
create_process 매개변수는 색인을 포함하여 파생 테이블의 전체 CREATE 문을 작성하고 있음을 나타냅니다. create_process를 사용하여 파생 테이블의 색인을 추가하려면 sql_step 매개변수를 사용하여 색인의 SQL을 지정합니다.
create_process를 사용하여 정의된 PDT의 경우 다음 매개변수를 사용할 수 없습니다.indexescluster_keysdistributiondistribution_stylepartition_keyssortkeys
예
두 단계로 MySQL 데이터베이스에 ctasless_customer_order_facts 영구 파생 테이블을 만듭니다. 먼저 첫 번째 sql_step 하위 매개변수로 정의된 CREATE TABLE SQL 문을 실행합니다. 두 번째로 두 번째 sql_step 하위 매개변수로 정의된 SELECT 문과 함께 INSERT INTO SQL 문을 실행합니다.
view: ctasless_customer_order_facts {
derived_table: {
datagroup_trigger: some_datagroup
create_process: {
sql_step: CREATE TABLE ${SQL_TABLE_NAME} (
customer_id int(11),
lifetime_orders int(11)
) ;;
sql_step: INSERT INTO ${SQL_TABLE_NAME}(customer_id, lifetime_orders)
SELECT customer_id, COUNT(*) AS lifetime_orders
FROM order
GROUP BY customer_id ;;
}
}
}
고려사항
${SQL_TABLE_NAME} 대체 연산자
${SQL_TABLE_NAME} 대체 연산자를 사용하여 생성되는 PDT의 계산된 이름을 대체할 수 있습니다. 이렇게 하면 SQL 문에 LookML view 매개변수에 지정된 PDT 이름이 올바르게 포함됩니다.
create_process는${SQL_TABLE_NAME}대체 연산자로 표시된 이름의 테이블을 만들어야 합니다. 그렇지 않으면 연결의 데이터 그룹 및 PDT 유지보수 일정 설정에 지정된 모든 트리거 검사 간격 (기본값은 5분)에서 처음부터 다시 빌드됩니다. 이로 인해 데이터베이스 또는 데이터 웨어하우스에서 예상치 못한 쿼리 트래픽이 발생할 수 있습니다.
sql_create를 사용하여 한 단계로 PDT 만들기
데이터베이스 다이렉트에 맞춤 DDL 명령어가 필요하고 단일 단계로 PDT를 만들려면 sql_create를 사용하여 실행할 전체 SQL CREATE 문을 정의하고 단일 단계로 PDT를 만들면 됩니다.
create_process로 정의된 테이블은 증분 PDT에 사용할 수 없음
증분 PDT로 사용하려면 SQL 기반 PDT에 sql 매개변수를 사용하여 정의된 쿼리가 있어야 합니다. sql_create 매개변수 또는 create_process 매개변수로 정의되는 SQL 기반 PDT는 증분식으로 빌드될 수 없습니다.
이는 Looker가 INSERT 또는 MERGE 명령어를 사용하여 증분 PDT의 증분값을 만들기 때문입니다. Looker는 정확한 증분값을 만드는 데 필요한 DDL 문을 확인할 수 없기 때문에 커스텀 데이터 정의 언어(DDL)를 사용해서는 파생 테이블을 정의할 수 없습니다.