JMP의 QB(쿼리 작성기)에서 객체 연결 및 포함, 데이터베이스 또는 OLEDB에 액세스합니다.JMP에서 Proficy Historian 데이터베이스에 액세스할 수 있습니까?라는 고객의 질문을 자주 받습니다.그래서 저는 Historian과 같은 COM 기반 인터페이스를 중심으로 구축된 데이터에 어떻게 액세스합니까?라는 질문에 답하기 위해 몇 가지 옵션을 공유하겠다고 생각했습니다.
JMP의 스크립팅 언어 또는 JSL은 파일 열기 대화 상자 내에서 아직 직접 사용할 수 없지만 필요할 수 있는 모든 유형의 데이터에 액세스하는 데 필요한 리소스만 제공합니다.JMP는 Triple-S XML, CSV, SAS, SPSS 등 다양한 플랫 파일 데이터 소스에서 데이터를 직접 읽을 수 있는 사전 구축된 다양한 데이터 커넥터를 제공합니다.이 블로그 게시물에서는 이러한 유형의 파일에 중점을 두지 않고 대신 Oracle, PostgreSQL, SQLite와 같은 관계형 데이터베이스 또는 Historian과 같은 다른 OLEDB 소스의 데이터에 액세스하는 데 중점을 둘 것입니다.
관계형 데이터베이스에 대한 액세스는 JMP 쿼리 작성기 인터페이스를 사용하여 수행됩니다.QB는 파일 메뉴로 이동하여 데이터베이스, 쿼리 작성기를 선택하여 액세스할 수 있습니다.

이 접근 방식은 기존 JMP 사용자에게 익숙하기 때문에 이것이 Historian 데이터베이스와 같은 ODBC가 아닌 데이터 저장소의 데이터에 액세스하기 위한 좋은 예비 단계가 될 것이라고 결정했습니다.
여기에서는 두 가지 접근 방식과 각 솔루션에 대한 세부 정보를 제시합니다.또한 각 솔루션의 이점과 제약 사항에 대한 몇 가지 생각을 제공합니다. 첫 번째는 ~을 통해 맞춤 쿼리이고 두 번째는 ~을 통해 OLEDB를 JMP 쿼리 작성기에서 더 쉽게 사용할 수 있는 형식으로 변환하거나 스냅샷합니다.
공교롭게도 첫 번째 접근 방식은 JMP의 쿼리 빌더를 사용하여 Historian OLEDB에 액세스하는 가장 간단한 접근 방식입니다.단순히 사용자 정의 쿼리를 사용합니다.필요한 유일한 데이터베이스 구성은 SQL 서버에서 Historian OLEDB로의 데이터베이스 링크를 생성하는 것이었습니다.

아래와 같이 연결된 서버를 사용하여 데이터베이스에 연결합니다(제 경우에는 연결된 서버 이름이 "MY_HISTORIAN"이었습니다).

다음을 클릭하면 쿼리 빌더 대화 상자가 나타납니다. 대화 상자를 사용하면 쿼리 작성에 사용할 스키마 내에서 스키마와 테이블을 선택할 수 있습니다.에스 SQL 서버 연결에서 스키마와 테이블 중 하나를 선택합니다(실제로 직접 사용하지 않으므로 모든 테이블이 작동합니다).저는 sys 스키마와 all_columns 테이블을 기본 데이터 테이블로 선택했습니다.

쿼리 작성 버튼을 클릭하여 쿼리 작성을 시작합니다.왼쪽 상단의 표 메뉴 아래에 있는 빨간색 삼각형을 클릭하면 맞춤 쿼리를 삽입할 수 있습니다.
JMP는 기존 쿼리를 사용자 정의 쿼리로 변환할지 묻는 알림을 제공합니다.계속하려면 "확인" 버튼을 클릭하세요.
사용자 정의 쿼리는 다음과 같이 이전에 작성한 것일 수 있습니다.
OPENQUERY에서 태그 이름, 타임스탬프, 값, 품질 선택(iHist,' SET StartTime=어제-12일, EndTime=오늘, IntervalMilliseconds=1시간, SamplingMode=계산됨, CalculationMode=최대 SELECT * FROM ihRawData WHERE TagName LIKE *simulation00001')
사용자 정의 쿼리는 더 이상 편집할 수 없습니다. QB 인터페이스를 노래합니다. 클립보드의 쿼리를 적용하려면 원래 쿼리 위에 붙여넣기만 하면 됩니다.업데이트 버튼을 클릭하면 데이터 미리보기가 표시됩니다.
씨 쿼리 실행을 클릭하여 ihRawData Historian 데이터 테이블을 JMP 데이터 테이블로 가져옵니다.
핵심 부분은 구문은 OPENQUERY 옵션입니다.이는 SQL Server가 처리를 위해 쿼리를 연결된 서버에 직접 전달하도록 지시합니다.
연결된 서버가 요청을 처리하면 테이블이 JMP로 반환되어 추가 시각화 및 분석을 수행할 수 있습니다.사용자 정의 쿼리 접근 방식의 이점 중 하나는 구현이 단순하다는 것입니다. 연결된 서버만 만들면 됩니다.QB 인터페이스가 나머지 작업을 수행합니다.이 접근 방식은 DBA가 복사하여 붙여넣을 수 있는 사용 가능한 쿼리 라이브러리를 제공한 경우에 효과적입니다. 이 접근 방식의 단점은 데이터를 더 자세히 탐색하고 쿼리할 자유가 거의 없이 실행하려는 쿼리를 미리 알아야 한다는 것입니다.
JMP의 쿼리 작성기 사용에 익숙하지 않은 분들을 위해 다음을 포함한 몇 가지 추가 리소스에 대한 링크를 제공했습니다. 고급 마스터링 JMP 세션 제공자: 크리스.키르히베르그 .
두 번째 접근 방식에서는 데이터베이스 구성 변경이 필요하지 않습니다. 그러나 Python과 추가 Python 라이브러리(win32com.client)를 설치해야 합니다.간단히 설치하세요 OLE 데이터베이스 도구 추가 기능 그리고 프롬프트를 따르세요.추가 기능은 Python 스크립트를 실행합니다. (Python 스크립트 작성에 도움을 주셔서 감사합니다. 브라이언.분) 그러면 OLEDB의 스냅샷이 생성되어 SQLite DB로 저장됩니다.그러면 표시된 대로 SQLite DB에 QB에서 직접 액세스할 수 있습니다.Python과 같은 외부 프로그램은 JMP 스크립트 언어 또는 JSL을 사용하여 실행할 수 있습니다.JSL에는 Run Program이라는 기능이 있습니다.최근 유럽 Discovery Summit에서 바로 이 주제에 관한 훌륭한 논문이 발표되었습니다. hecht@jmp "라는 제목의 프로그램 실행 - 다른 프로그램에 대한 JMP® 링크 "에서는 이 기능을 사용하는 방법에 대한 몇 가지 자세한 예를 제공합니다.
Python 스크립트는 사용자 인터페이스(UI)에서 전달된 일부 명령줄 옵션을 실행합니다.UI는 전적으로 JSL로 구축되었으며 JMP 추가 기능으로 패키징하여 모든 분석가에게 배포할 수 있도록 했습니다.추가 기능을 설치하려면 분석가가 두 번 클릭하기만 하면 됩니다.이제 추가 기능 메뉴에서 추가 기능을 사용할 수 있습니다.

세 가지 메뉴 옵션을 선택할 수 있습니다.메뉴 이름은 쿼리 빌더와 함께 사용할 스냅샷 OLE 데이터베이스 , OLEDB에 대한 사용자 정의 QB 쿼리 그리고 유용 . 첫 번째 옵션은 OLE 데이터베이스 또는 단일 OLE 데이터베이스 테이블을 SQLite 데이터베이스 형식으로 변환합니다.사용자 정의 QB 쿼리 옵션은 처리를 위해 JMP 쿼리 빌더(QB)로 작성된 쿼리를 OLE 데이터베이스에 제출합니다.유틸리티 메뉴 아래의 마지막 옵션을 사용하면 SQLite 데이터베이스에서 테이블이나 모든 데이터를 제거할 수 있으며 추가 기능의 기본 선택 사항을 수정하는 옵션도 가능합니다. 유틸리티 메뉴 아래의 마지막 옵션을 사용하여 추가 기능의 기본 설정을 업데이트하는 메커니즘을 제공합니다.관찰 수가 많은 경우 옵션을 사용하여 OLE 데이터베이스에서 검색할 최대 행 수를 설정하십시오.아래에서는 반환할 최대 레코드 수를 10으로 설정하는 방법을 보여줍니다. 최대 레코드를 -1로 설정하면 OLE 데이터베이스의 각 테이블에 대한 모든 행을 검색합니다.

연결하다. 선택하다. 짓다. 수입.
QB를 사용하여 방금 생성된 SQLite 데이터베이스에 대한 연결을 설정합니다.이제 동일한 인터페이스를 사용하여 쿼리 작성을 시작할 수 있습니다.쿼리를 작성한 후에는 "OLEDB에 대한 사용자 정의 QB 쿼리" 옵션을 실행하여 Python 스크립트에서 실행할 쿼리를 두 번째로 복사할 수 있습니다.이번에는 쿼리가 실행될 때 쿼리의 where 절과 일치하는 모든 행이 반환됩니다.이제 JMP에서 사용할 수 있는 테이블을 통해 JMP 시각화 및 모델링 기능을 완벽하게 이용할 수 있습니다.

어떤 데이터 소스에 정기적으로 연결합니까?JSL의 프로그램 실행 기능을 알고 계셨나요?
정기적으로 연결하는 데이터 소스나 자신의 스크립트에서 Run Program을 사용한 다른 방법에 대한 의견을 남겨주세요.
다음 시간까지... 즐거운 코딩 되세요!
* GE Intelligent Platforms, Inc는 General Electric Company가 전액 출자한 자회사입니다. GE 브랜드와 로고는 General Electric Company의 상표입니다.
SQL Server Management Studio에서 연결된 데이터베이스를 설정하는 것은 간단했고 Proficy 매뉴얼에도 있었습니다. 문제가 있는 것은 JMP에서 연결된 서버에 대한 새 연결을 설정하는 것입니다. 연결된 서버가 있는 경우 연결하는 방법에 대한 자세한 내용을 알려주실 수 있나요?