슬롯 커뮤니티 블로그 | 슬롯 커뮤니티 철저한 활용 내비게이션DB와 함께 작동하는 새로운 슬롯 커뮤니티 기능에 대한 No.30

BRMS 철저한 사용 블로그

No.30 DB와 함께 작동하는 새로운 슬롯 커뮤니티 기능에 대한 No.30

2018.12.11 Progress Corticon

이 항목은 Assist Co., Ltd. (https : //www.ashisuto.co.jp/product/category/brms/progress_corticon/column/detail/brmstech30.html)의 재 인쇄입니다.

No.30 DB와 연결되는 새로운 슬롯 커뮤니티 커뮤니티 기능에 대한 No.30 (2018 년 12 월 11 일)

Corticon은 원래 의사 결정 서비스가 실행되는 동안 슬롯 커뮤니티와 연결되는 EDC (※) 기능이 있습니다.
Corticon 5.6에서,이 EDC와는 별도로 새로운 슬롯 커뮤니티 (Advanced Data Connector) 기능이 데이터베이스에 연결되었습니다. (원래 EDC 기능도 이전과 같이 사용할 수 있습니다.)
이 기사에서는 Corticon 설치 프로그램에 포함 된 슬롯 커뮤니티를 사용하는 샘플을 기반으로 슬롯 커뮤니티를 사용하는 방법, 처리 방법 및 EDC의 차이점을 소개합니다.


[기사 쓰기 환경]
Corticon 5.6.1
Postgresql 9.4

개요 및 샘플 작동 확인

ADC의 함수를 요약하려면 규칙 흐름에서 서비스 콜 아웃 (※) 중 하나 역할을하고 의사 결정 서비스를 실행할 때 DB에 액세스하고 DB 데이터를 규칙의 입력/출력 값과 연결합니다.
일반적인 서비스 콜 아웃은 사용자가 실행될 프로그램을 구현해야하지만 슬롯 커뮤니티는 진행중인 슬롯 커뮤니티에 JAR 파일을 사용하므로 슬롯 커뮤니티를 사용할 때 Java 프로그램을 개발할 필요가 없습니다.


슬롯 커뮤니티를 사용하려면 다음을 수행하십시오.

● 슬롯 커뮤니티 테이블 스키마 정보와 관련된 어휘 엔티티, 속성 및 관련성을지도합니다.
► 이것은 전통적인 EDC와 같은 방식으로 구현됩니다.
● 규칙 프로젝트 "속성"및 "Corticon Extensions"에서 진행중인 슬롯 커뮤니티의 확장자 JAR 파일을 설정하십시오.
► 당신이 지정한 JAR 파일은 "<Corticon Studio 설치 폴더 \ adasco \ adasco \ ccadasco.jar"입니다.
● 규칙 흐름 서비스 콜 아웃에서 슬롯 커뮤니티 확장을 선택하고 적절한 옵션을 설정하십시오.
● 규칙에 대한 입력 데이터로 처리 할 실제 데이터를 포함하는 테이블 외에도 슬롯 커뮤니티 실행에 필요한 특수 메타 데이터가 포함 된 테이블이 필요합니다.
► 이제 부터이 기사에서 전자는 실제 데이터의 테이블이 될 것이며 후자는 메타 데이터의 테이블이 될 것입니다.
► 실제 데이터의 테이블 및 메타 데이터 테이블은 동일한 데이터베이스 또는 다른 데이터베이스에있을 수 있습니다.
● Qualesheet의 구현은 EDC를 사용할 때와 같은 슬롯 커뮤니티 확장 또는 슬롯 커뮤니티 필터를 알 필요가 없습니다. 일반 규칙과 같은 방식으로 구현하십시오.
● 규칙을 실행할 때는 EDC를 사용할 때와 같이 "슬롯 커뮤니티 액세스"를 설정할 필요가 없습니다. 일반 규칙 및
똑같이하십시오.
► 그러나 실행 중에는 슬롯 커뮤니티의 데이터 소스 구성 파일 (메타 데이터의 표 DB의 연결 설정)이 필요합니다.
► 슬롯 커뮤니티를 사용하여 Corticon Server에서 슬롯 커뮤니티를 사용하여 의사 결정 서비스를 실행할 때는 EDC 옵션을 활성화 한 라이센스가 있어야합니다.

이 기사에서는 "<Corticon Studio 설치 폴더 \ adasco \ 샘플 \ 샘플 간단한 키"에서 "63-retievebcd.erf"를 실행하기위한보다 구체적인 설정 및 절차를 설명합니다.
다음은 슬롯 커뮤니티의 개요 다이어그램입니다.

이미지 1

개요 다이어그램에 표시된 데이터 구조 및 SQL 템플릿은 위에서 언급 한 "샘플 단순 키"에서 "63-remetieveabcd.erf"입니다.
이제이 샘플의 "Sample Simple Keys"의 작동을 확인해 봅시다.
다음 단계가 필요합니다.

1) 메타 데이터에 대한 테이블 및 실제 데이터 용 테이블 작성
2) Corticon Studio 및 Import Rule Assets에서 프로젝트 생성
3) 어휘 매핑 설정
4) 슬롯 커뮤니티 확장 설정
5) 규칙 실행 및 처리 내용 확인

이제 각 작업의 특정 핵심 사항을 설명합니다.

(1) 메타 데이터에 대한 테이블을 만들고 실제 데이터에 대한 테이블을 만듭니다

이 기사에서는 PostgreSQL 9.4의 동일한 슬롯 커뮤니티 "테스트"의 "공개"의 메타 데이터 테이블과 실제 데이터 테이블을 작성합니다.
슬롯 커뮤니티의 호환 RDBM은 EDC와 동일합니다. 제품 시스템 요구 사항 페이지를 확인하십시오.
https : //www.ashisuto.co.jp/product/category/brms/progress_corticon/detail/list/platform.html

메타 데이터에 대한 테이블을 만들기위한 SQL은 "<Corticon Studio 설치 폴더 \ adasco \ core database metadata tables \ createtables.txt"입니다. DB "테스트"로이 SQL을 실행하면 슬롯 커뮤니티의 필요한 메타 데이터 테이블이 생성됩니다. 그러나 RDBM의 유형에 따라 그대로 실행할 수 없거나 슬롯 커뮤니티를 실행할 때 문제가 발생할 수 있습니다. 예를 들어,이 기사에서는 다음과 같이 PostgreSQL의 SQL을 수정하고 실행했습니다.

<postgresql에 대해 수정 된 메타 데이터에 대한 테이블을 만들기위한 명령문 만들기

테이블 작성 "CCDATASORCES"

표와 열 이름은 모두 소문자입니다. PostgreSQL에서 대문자로 테이블 또는 열 이름을 만들면 슬롯 커뮤니티를 실행할 때 문제가 발생할 수 있기 때문입니다.

각 테이블과 열의 의미는 제품 매뉴얼에 자세히 설명되어 있지만 다음과 같이 요약합니다.

● CCDATASORCES
 ► 실제 데이터 테이블에 대한 연결 정보
● CCRETRIVES
 ► 규칙을 실행할 때 처리 할 쿼리 정의, 슬롯 커뮤니티 서비스 콜 아웃 (규칙 흐름 화면)
● ccupdates
► 쿼리 그룹 내 업데이트와 관련된 정보
● CCINSERTS
 ► 쿼리 카운티 내 삽입과 관련된 정보. 또한 인서트 용 SQL 템플릿도 포함되어 있습니다.
● Ccreads
► 쿼리 카운티 내에서 선택과 관련된 정보. 또한 SELECT 용 SQL 템플릿도 포함되어 있습니다.

이 메타 데이터 테이블은 슬롯 커뮤니티 샘플 "샘플 간단한 키"에 고유하지 않으며 슬롯 커뮤니티를 사용할 때 동일한 스키마의 메타 데이터 테이블을 항상 사용합니다.

이러한 메타 데이터 테이블을 만든 후 각 테이블은 슬롯 커뮤니티의 메타 데이터를 저장합니다. "샘플 간단한 키"를 실행하는 데 필요한 데이터 (삽입 문)은 "<ccstudio installation 폴더 \ addons \ adasco \ 샘플 \ 샘플 간단한 키 \ database scripts \ insertsTintocoremetAdatables.txt"입니다. 이 내용은 "샘플 간단한 키"와 관련된 데이터입니다. 다른 규칙에 따라 다른 DB의 슬롯 커뮤니티 기능을 사용하려면 다른 메타 데이터를 만들어야합니다.
또한이 삽입 문을 R슬롯 커뮤니티MS에 맞게 편집하십시오. 예를 들어,이 기사에서는 다음과 같이 PostgreSQL의 SQL을 수정하고 실행했습니다.
(ccdatasources의 슬롯 커뮤니티 이름, 사용자 이름 및 비밀번호도 변경되었습니다.)

<postgresql에 대해 수정 된 메타 데이터 테이블에 데이터를 저장하려면 명령문 삽입

"ccdatasources"값 (1, 'Corticon', 'com.corticon.database.id.postgresql',

"Sample Simple Keys"에서 "63 -RetieveAbcd.erf"를 간단히 실행하면 위의 데이터의 "Retieve_ABCD"그룹과 관련된 삽입 설명 만 실행하는 것이 좋습니다 (1-2, 8, 17-20).
"샘플 단순 키"에 포함 된 "63-retieveabcd.erf"이외의 규칙 흐름에서 설정된 다른 슬롯 커뮤니티 서비스 콜 아웃을 수행 할 때 필요한 다른 모든 삽입 문은 정보입니다.

다음, "Sample Simple Keys"에서 예상대로 실제 데이터 테이블과 그 내용을 만듭니다.
실제 데이터에 대한 테이블을 만들기위한 SQL은 "<Corticon Studio 설치 폴더 \ addons \ adasco \ 샘플 \ 샘플 간단한 키 \ database scripts \ createTables.txt"의 4 개의 CSV입니다. 그리고 데이터 목차는 "<Corticon Studio 설치에 있습니다. 폴더 \ addons \ adasco \ 샘플 \ 샘플 간단한 키 \ 데이터베이스 스크립트 \ ". 지금까지 SQL과 마찬가지로 R슬롯 커뮤니티MS에 따라 수정해야합니다. 예를 들어,이 기사에서는 다음과 같이 PostgreSQL 용 테이블 작성 SQL을 편집하여 테이블을 작성하고 데이터를 가져옵니다.

<postgresql에 대해 수정 된 실제 데이터에 대한 테이블을 작성하기위한 명령문 create stefe

테이블 작성 "M_A"

PostgreSQL에서는 CSV를 수정할 필요가 없지만 R슬롯 커뮤니티MS 유형에 따라 CSV에서 라인 브레이크 코드 및 구분 기호 문자를 수정해야 할 수도 있습니다.
CSV를 가져 오면 M_A, M_B, M_C, M_D 테이블의 데이터 내용을 확인하십시오.
위의 개요 다이어그램에서 볼 수 있듯이,이 테이블과 데이터에는 1 : N 트리 구조가 있으며, 부모에 대한 어린이의 수는 10 x 10 씩 증가하는 CSV 데이터이므로 M_A, 1,000, M_C, 10,000 및 M_D에 대한 데이터는 100,000입니다.

(2) Corticon Studio 및 Import Rule Assets에서 프로젝트 생성

Corticon Studio에서 새로운 규칙 프로젝트 "슬롯 커뮤니티test"를 만듭니다.
다음, 슬롯 커뮤니티test 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
나타나는 속성 화면에서 "Corticon Extensions"를 선택하고 "<Corticon Studio 설치 폴더 \ addons \ ccadasco.jar"를 추가하십시오. 이것은 미리 준비된 슬롯 커뮤니티 기능의 JAR 파일입니다.

<규칙 프로젝트의 속성에서 슬롯 커뮤니티에 대해 "ccadasco.jar"파일 설정

이미지 2

다음, 다음, 아래의 모든 파일을 가져옵니다. "<Corticon Studio 설치 폴더 \ adasco \ 샘플 \ 샘플 간단한 키 \ ruleassets \"를 만든 슬롯 커뮤니티Test 프로젝트에 슬롯 커뮤니티test 프로젝트에 가져옵니다.

<Corticon Studio (Eclipse) 파일 가져 오기 화면

이미지 3

(3) 어휘 매핑 설정

모든 파일을 가져 오면 어휘 "databasesco.ecore"를 엽니 다.
이 어휘는 이미 슬롯 커뮤니티 스키마에 매핑되었지만 새로 생성 된 PostgreSQL에서 슬롯 커뮤니티에 맞게 데이터 소스 및 매핑 설정을 수정해야합니다.

먼저 슬롯 커뮤니티 액세스 탭에서 대상 데이터 소스의 설정을 수정하십시오.

<PostgreSQL의 슬롯 커뮤니티 액세스 탭에서 정보 변경

이미지 4

다음, Corticon Studio 메뉴에서 "Vocabulary", "DB Access"및 "가져 오기 DB 메타 데이터"아래에서 "모든 테이블 가져 오기"를 실행하십시오.
경고 메시지 "매핑 오류 발견"이 표시되므로 어휘 엔터티 및 속성의 매핑 설정을 적절하게 수정하십시오.

<슬롯 커뮤니티 메타 데이터를 가져올 때 발생하는 경고

이미지 5

특히, PostgreSQL의 경우 표와 열 이름은 모두 소문자이며 스키마는 "DataSync"에서 "public"으로 변경되므로 A, B, C, D 엔티티의 모든 매핑 설정은 그에 따라 수정되어야합니다.
예를 들어 다음과 같이 수정하십시오.

<엔티티 B (테이블 이름)

이미지 6

<속성 my_column1 (열 이름)

이미지 7

엔티티 매개 변수, Zoutput1 및 Zoutput2를 수정할 필요가 없습니다.
또한, Entities B, C 및 D에 대한 PostgreSQL의 외국 키에 지정된 열은 "외국 키를 속성에 매핑 할 수 없지만"슬롯 커뮤니티를 사용하여 "샘플 간단한 키"에는 특별한 문제가 없으므로 그대로 두십시오.

(4) 슬롯 커뮤니티 확장 구성

규칙 흐름을 열어주세요 "63-retieveabcd.erf".
슬롯 커뮤니티 기능에 대한 "ABCD 검색"서비스 콜 아웃을 선택하고 화면에서 "속성"탭의 내용을 확인하십시오. (이 규칙 흐름은 이미 속성을 설정 했으므로 내용을 변경할 필요가 없습니다)

<규칙 흐름에서 "ABCD 검색"서비스 콜 아웃을 선택할 때 "63-RetriveAbcd.erf"

이미지 8

서비스 이름 "CCDATABASESERVICECALLOUT.ROMDATABASE"는 프로젝트의 "속성"및 "Corticon Extensions"에 ccadasco.jar를 추가하여 설정할 수 있습니다.
또한 런타임 속성에 속성 및 설정 "ccreverievalsname"및 "retieve_abcd"세트가 있는지 확인하십시오.
이것은 메타 데이터 테이블 ccrevervals에 저장된 쿼리 그룹의 "retieve_abcd"라는 이름에 해당합니다. 설정은 서비스 콜 아웃이 실행되면 메타 데이터 테이블에 저장된 "retieve_abcd"에 속하는 쿼리가 실행된다는 것입니다.

서비스 콜 아웃을 수행 한 후에는 또 다른 규칙 흐름 인 "50-SimplinProcess.erf"가 위치하지만 이것이 정상적인 규칙 흐름입니다.
내용을 간략하게 설명하기 위해 입력 된 엔티티의 총 수 "a", "b", "c"및 "d"데이터의 총 수를 절반으로 나눈 총 수를 계산하고 엔터티 zoutput1로 출력합니다.

(5) 규칙 실행 및 처리 내용 확인

​​규칙 흐름을 실행하려면 "63-retieveabcd.erf"를 실행하려면 메타 데이터 테이블에 연결하려면 데이터 소스 연결 구성 파일을 준비해야합니다.
구성 파일의 템플릿은 "<Corticon Studio 설치 폴더 \ adasco \ 샘플 \ ccadasco.properties"입니다.

이번에는 PostgreSQL의 슬롯 커뮤니티에 대해 다음과 같이 다시 작성했습니다.

<ccadasco.properties of ccadasco.properties postgresql

# 코르티콘 특정 SCO 테이블에 연결하는 것과 관련된 속성

사용자 이름 및 비밀번호에 대한 드라이버 이름, 연결 URL 값 및 암호화 된 숫자는 "어휘", "슬롯 커뮤니티 액세스", "슬롯 커뮤니티 액세스 속성"기능 및 "프로젝트"및 "프로젝트"및 "Run Recording Schema"에서 얻을 수 있습니다. "

생성 된 "ccadasco.properties"파일을 "<Corticon Studio Workdir"(※) 바로 아래에 배치하고 Corticon Studio를 다시 시작하십시오.

  • *이것은 Corticon Studio를 설치할 때 지정할 작업 폴더입니다. 이것은 스튜디오를 시작할 때 지정할 수있는 작업 공간과 다릅니다.


지금까지 설정 한 후 규칙 테스트 "60 -Tester.ert"를 열고 "검색"탭을 활성화하고 테스트를 실행하십시오.

<60 -Tester.ert 검색 실행 결과 화면

이미지 9

출력 내용이 예상 출력과 동일하면 슬롯 커뮤니티가 올바르게 실행됩니다.

간단한 프로세스를 설명하기 위해 슬롯 커뮤니티의 프로세스는 DB에서 A에 연결된 정보 B, C 및 D를 얻고 입력 값으로 제공된 10 가지 정보에 대한 트리 구조의 입력 데이터로 규칙으로 가져 오는 것입니다. A에서 트리의 각 단계마다 데이터가 10만큼 증가함에 따라 D 엔티티에 대한 10,000 개의 데이터가 있으며 궁극적으로 규칙의 입력 값으로 처리됩니다.
EDC와 달리 슬롯 커뮤니티를 실행할 때 "규칙 테스트", "테스트 시트"및 "DB 액세스"는 "없음"으로 남겨집니다. 변경할 필요가 없습니다. 반면에 "DB 액세스"설정을 변경하는 것이 제대로 작동하지 않을 수 있습니다.)

PostgreSQL 측의 로그 설정을 출력 실행 쿼리 정보로 변경하면 규칙을 실행할 때 PostgreSQL로 어떤 종류의 SQL이 실행되었는지 확인할 수 있습니다.
(설정 변경 방법에 대한 구체적인 지침은 PostgreSQL 매뉴얼 등을 참조하십시오)

우리는 여기에 자세한 로그 정보를 게시하지 않지만 PostgreSQL 로그에서 메타 데이터 테이블에 등록 된 4 개의 선택 설명이 규칙이 실행될 때 실행 된 것을 볼 수 있습니다.
메타 데이터 테이블에 등록 된 SELECT 문은

EDC 및 슬롯 커뮤니티 비교

우리는 슬롯 커뮤니티를 설정하는 방법과 그 처리 방법을 살펴 보았지만 슬롯 커뮤니티를 사용할 때는 기존 EDC 기능과 동일한 단계를 사용하여 어휘 및 DB 스키마의 매핑을 설정해야합니다. 이 어휘의 매핑 설정 부분은 슬롯 커뮤니티와 EDC간에 공유되므로 규칙 구현의 어려움 및 규칙을 처리하기위한 시간과 같은 요소를 무시하면 EDC를 사용하는 규칙에도 슬롯 커뮤니티를 사용하여 모든 규칙에 대해 동일한 입력 및 출력을 달성 할 수 있다고 말할 수 있습니다.
물론, 입력 및 출력이 정확히 동일하도록 EDC를 사용 하여이 기사를 기반으로하는 샘플 "샘플 간단한 키"에서 "63-retievebcd.erf"에 대한 규칙을 구현할 수도 있습니다. 이 기사에서는 실제로 비교 및 ​​검증 규칙을 만들고 구현했습니다.

나는이 기사에서 세부 구현 세부 사항을 구현할 수 없지만 이미지에서 슬롯 커뮤니티를 사용할 때 설정되지 않은 스코프 섹션에서 "10-countall.ers"및 "11-halfcountall.ers"설정 트리 (DB 확장), "규칙 테스트", "테스트 시트"및 "테스트 시트", "읽기"로 설정된 스코프 섹션에서 구현할 수 있습니다.

<10-countall.ers edc를 사용하도록 수정되었습니다

이미지 10

<edc를 사용하여 규칙을 실행하기위한 테스트

이미지 11

테스트 출력을 보면 슬롯 커뮤니티를 사용하는 규칙과 정확히 동일한 결과를 얻을 수 있습니다.

그러나 EDC를 사용하면이 결과는 기계의 성능에 따라 슬롯 커뮤니티보다 훨씬 길게 출력됩니다.
시간이 많이 걸리는 원인을 확인하려면 슬롯 커뮤니티 테스트에서와 같이 PostgreSQL 측면 로그를 확인했습니다. 그런 다음 EDC를 사용했을 때 실제 데이터 테이블은 1111 회 쿼리였습니다. SQL의 내용물로부터 EDC를 사용하여 트리 구조화 된 데이터를 획득 할 때 다음과 같은 비효율적 인 DB 처리가 수행되는 것으로 나타났습니다.

<EDC와 슬롯 커뮤니티 사이의 트리 구조 데이터를 획득 할 때 처리의 차이

이미지 12

또한 EDC에서는 규칙 흐름 내에서 확장 된 규칙표가 많을수록 DB에 더 액세스할수록 DB에 더 액세스 할 수 있지만 슬롯 커뮤니티에서는 룰 플로우 내에서 서비스 콜 아웃이 수행 될 때만 DB에 액세스 할 가능성이 높습니다.

실제로, EDC를 사용하여 DB에서 트리 구조화 데이터를 검색 할 때 이러한 종류의 비효율적 인 처리가 가능하며 새로운 슬롯 커뮤니티 기능이이를 해결하는 기능이라고 말할 수 있습니다.

요약

이 기사에서는 실제로 "샘플 간단한 키"를 실행하려고 시도했으며 슬롯 커뮤니티에 필요한 준비 및 처리를 도입했습니다.

새로운 ADC를 전통적인 EDC와 비교할 때의 장단점에 대한 간략한 요약은 다음과 같습니다.

● 혜택
► EDC보다 빠른 트리 구조 데이터 작성
► SQL을 작성할 수 있습니다 (※)

● 단점
► 구성 및 규칙 구현은 EDC보다 복잡하고 어렵습니다
► SQL을 작성해야합니다

  • *이것은 SQL을 작성할 때 장점과 단점이라고 말할 수 있으므로 자세히 언급됩니다.


이 기사의 내용에서 볼 수 있듯이 새로운 슬롯 커뮤니티 기능을 사용하려면 SQL을 설정하고 구현하기가 여전히 어렵고 복잡합니다. 그러나 EDC 처리 속도로 해결할 수없는 문제가있는 경우 슬롯 커뮤니티를 고려하십시오.

저자 소개

Tari Reki

정보 인프라 기술 부서 진행 프로모션 부서

이전에 그는 계약 계약 개발에서 일하는 Linux 프로그래머이자 SE였습니다.
그는 또한 IT 잡지와 책에 대한 기사를 작성한 경험이 있습니다.
현재 그는 BRMS Progress Corticon에 대한 기술 지원 및 교육을 제공합니다.

다운로드 닫기

닫기

[Thu, 2 월 16 일]

"Progress Corticon"실무 세미나

진행을 시각화하고 자동화를 촉진하는