SQL Server, MySQL, Excel 등 다양한 ODBC 호환 데이터베이스에 대해 기준 구성을 사용할 수 있습니다. 이러한 구성을 사용자 정의하고 공유하여 조직의 여러 사용자에게 JMP에 데이터를 로드하기 위한 단일 구성을 제공할 수 있습니다.
JMP는 Windows 레지스트리 또는 ODBC.ini(macOS)에서 기존 ODBC 구성 DSN(데이터 소스 이름)을 검색하여 JMP 데이터 커넥터로 변환합니다. 이렇게 하면 기존 DSN을 구성으로 다시 생성할 필요 없이 데이터 소스에 쉽게 액세스할 수 있습니다.
선택한 데이터 소스에 대한 ODBC 드라이버를 설치한 후 다음 단계에 따라 JMP에서 데이터베이스에 연결합니다.
1. 파일 > 데이터베이스 > 데이터 커넥터를 선택합니다. 연결을 설정한 데이터 소스가 "커넥터" 상자에 나열됩니다.
2. 새 연결을 클릭합니다.
"데이터 커넥터 선택" 창에 새 연결 대화상자가 표시됩니다.
그림 3.51 새 연결 대화상자
3. 기본 제공 커넥터, 조직에서 제공한 추가기능 커넥터 및 사용자가 생성한 커넥터의 레지스트리에서 데이터 커넥터를 선택합니다. 기본 제공 커넥터 앞에는 com.jmp, 추가기능 커넥터 앞에는 추가기능 ID가 각각 접두사로 붙고 사용자가 생성한 커넥터에는 접두사가 없습니다. 새 커넥터는 데이터 커넥터 구성에 나열된 구성 옵션을 사용하여 구성해야 합니다.
4. 구성된 데이터 커넥터를 선택하고 연결을 클릭합니다.
새 연결 대화상자가 닫히고 "데이터 커넥터 선택" 창으로 돌아갑니다.
데이터베이스에서 데이터를 가져오려면
1. 파일 > 데이터베이스 > 데이터 커넥터를 선택합니다.
"데이터 커넥터 선택" 창이 나타납니다(Figure 3.52).
2. 데이터베이스에 이미 연결되어 있으면 "연결" 상자에서 해당 데이터베이스를 선택합니다.
"커넥터" 상자에는 JMP가 연결된 데이터 소스가 나열됩니다. "스키마 - 테이블" 상자에는 해당 데이터 소스를 지원하는 데이터베이스에 대한 스키마가 나열됩니다.
그림 3.52 연결을 설정하기 전의 데이터 커넥터 선택 창
3. 원하는 데이터 소스가 "커넥터" 상자에 나열되지 않으면 새 연결을 클릭하여 데이터 커넥터를 선택합니다. 데이터 커넥터 구성의 단계를 따르십시오.
4. "커넥터" 상자에서 원하는 데이터 소스를 선택합니다. 그에 따라 "테이블" 상자의 테이블 목록이 업데이트됩니다. 테이블 수와 데이터베이스 연결 속도에 따라 업데이트에 몇 초 정도 걸릴 수 있습니다. 데이터베이스가 스키마를 지원하면 목록의 첫 번째 스키마에 대한 테이블이 로드되며, 다른 스키마를 클릭하면 해당 스키마에 대한 테이블이 로드됩니다.
5. 테이블 목록에 포함 체크박스 그룹에 있는 옵션을 선택하여 나열할 테이블을 제어합니다.
참고: 이러한 라벨은 드라이버에 따라 다르게 해석됩니다.
사용자 테이블 이 옵션을 클릭하면 사용 가능한 모든 사용자 테이블이 테이블 목록에 표시됩니다. 사용자 테이블은 컴퓨터에 로그온한 사용자에 따라 달라집니다.
보기 이 옵션을 클릭하면 테이블 목록에 열 수 있는 다른 모든 파일 유형과 함께 "보기"가 표시됩니다. "보기"는 가상 테이블로서, 사용자가 열 때마다 업데이트되는 쿼리 결과 집합입니다. 보기는 하나 이상의 테이블에서 정보를 추출하여 결합하는 데 사용됩니다.
시스템 테이블 이 옵션을 클릭하면 사용 가능한 모든 시스템 테이블이 테이블 목록에 표시됩니다. 시스템 테이블은 모든 사용자 또는 시스템 수준의 서비스가 사용할 수 있는 테이블입니다.
동의어 이 옵션을 클릭하면 사용 가능한 모든 ORACLE 동의어가 테이블 목록에 표시됩니다.
6. "테이블" 목록에서 원하는 테이블을 선택합니다.
7. 테이블 열기를 클릭하여 선택한 테이블의 모든 데이터를 가져오거나, 쿼리 빌더를 클릭하여 가져올 테이블의 부분집합을 지정합니다. 자세한 내용은 쿼리 빌더에서 SQL 쿼리 생성에서 확인하십시오.
큰 테이블을 열 때는 약간의 지연이 발생할 수 있습니다. 모든 활성 ODBC 쿼리의 상태를 보려면 보기 > 실행 중인 쿼리를 선택합니다.
참고: 이전에 JMP에서 데이터베이스로 내보냈던 데이터이고 데이터에 표현식 열이 포함되어 있으면 해당 열을 문자 열로 가져오게 됩니다. 열 > 열 정보를 선택하고 "데이터 유형"을 "표현식"으로 변경하십시오.
"데이터 커넥터 선택" 창에서 새로 만들기를 선택하면 "데이터 커넥터 편집기" 창이 나타납니다. 이 창에서 로그인 자격 증명, SQL 형식 지정 등 데이터베이스 연결 옵션을 구성합니다.
"연결" 그룹에서 ODBC 연결 문자열 키에 해당하는 필드에 대해 값 없음으로 설정하면 연결 문자열에 해당 필드를 지정하지 않는 것과 같습니다. 부울을 허용하는 옵션은 설정 및 해제 값을 수락합니다.
그림 3.53 데이터 커넥터 편집기 창
기준
기준 구성을 로드하는 데 사용할 키 유형을 지정합니다.
없음
모든 필드가 기본값으로 설정된 빈 구성을 제공합니다.
ID
제공된 ID와 연결된 구성을 제공합니다.
파일
제공된 파일 경로와 연결된 구성을 제공합니다.
규격
제공된 규격과 연결된 구성을 제공합니다. 규격은 KEY1 = VALUE1; KEY2 = VALUE2; 구문으로 제한된 형식의 JSL을 사용합니다. 여기서 KEY는 ID 또는 Server와 같은 키워드를 나타내고 VALUE는 데이터 연결의 ID 또는 Server 값을 나타냅니다. 규격은 명명된 데이터 커넥터 구성 ID로 특정 데이터 소스에 액세스하여 구성을 테스트하는 데 유용할 수 있습니다.
연결
데이터베이스에 연결하기 위한 옵션입니다.
연결
ODBC 연결 문자열을 지정합니다.
데이터베이스
연결할 데이터베이스의 이름을 지정합니다.
드라이버
드라이버 이름을 지정합니다.
암호
데이터베이스에 액세스하기 위한 암호를 지정합니다.
암호 키
암호 필드의 값에 매핑할 연결 문자열 키를 지정합니다.
포트
포트 값을 지정합니다.
서버
서버 인스턴스의 이름을 지정합니다.
서버 키
서버 필드의 값에 매핑할 연결 문자열 키를 지정합니다.
테이블
열려는 테이블의 이름을 지정합니다.
사용자
서버 로그인 이름을 지정합니다.
사용자 키
사용자 이름 필드의 값에 매핑할 연결 문자열 키를 지정합니다.
ODBC
비동기 가능
(부울|자동) 드라이버가 비동기 실행을 지원하는지 여부를 지정합니다. 자동 옵션을 선택하면 JMP에서 자동으로 결정합니다.
블록 페치
(부울) 드라이버가 블록 페치를 지원하는지 여부를 지정합니다.
블록 페치에 8바이트 맞춤 필요
(부울) 드라이버가 블록 페치 메모리에 8바이트 맞춤이 필요하다고 가정하는지 여부를 지정합니다.
동의어 테이블 목록
"데이터 커넥터 선택" 창의 "테이블 목록에 포함" 상자에 나오는 설정에 따라 테이블 목록에 동의어 테이블을 포함할지 여부를 나타냅니다.
항상
사용자 환경 설정에 관계없이 동의어 테이블을 포함합니다.
안 함
사용자 환경 설정에 관계없이 동의어 테이블을 제외합니다.
사용자 설정
사용자 환경 설정에 따라 동의어 테이블을 포함합니다.
시스템 테이블 목록
"데이터 커넥터 선택" 창의 "테이블 목록에 포함" 상자에 나오는 설정에 따라 테이블 목록에 시스템 테이블을 포함할지 여부를 나타냅니다.
Excel 드라이버와 같은 일부 드라이버는 모든 테이블을 시스템 테이블로 간주합니다. 항상을 사용하면 해당 테이블이 나열됩니다.
항상
사용자 환경 설정에 관계없이 시스템 테이블을 포함합니다.
안 함
사용자 환경 설정에 관계없이 시스템 테이블을 제외합니다.
사용자 설정
사용자 환경 설정에 따라 시스템 테이블을 포함합니다.
스크롤 가능 커서
(부울|자동) 드라이버가 스크롤 가능 커서 사용을 지원하는지 여부를 지정합니다. 자동 옵션을 선택하면 JMP에서 자동으로 결정합니다.
지원되는 경우 JMP는 SQLFetch 대신 SQLFetchScroll ODBC 함수를 사용합니다.
SQLDescribeCol 테이블 이름 포함 가능
(부울) SQLDescribeCol ODBC 함수에서 반환하는 열 이름에 테이블 이름을 포함할지 여부를 지정합니다. 클라우드 데이터 소스용 일부 드라이버에서 이를 수행합니다. 설정 옵션을 선택하면 JMP는 SQLDescribeCol ODBC 함수에서 반환된 값을 파싱합니다.
스키마 지원
(부울|자동) 드라이버가 스키마를 지원하는지 여부를 지정합니다. 자동 옵션을 선택하면 JMP에서 자동으로 결정합니다.
값의 후행 공백
(부울) 후행 공백까지 동일한 값을 다른 값으로 간주할지 여부를 지정합니다. 대부분의 데이터베이스는 이러한 값을 동일한 것으로 간주하고 JMP는 고유 값을 수집할 때 이를 사용합니다.
정보 메시지가 포함된 성공을 페치 오류로 간주
(부울) "Success with Info(정보 메시지 포함 성공)" 결과를 오류로 처리할지 여부를 지정합니다. 일부 드라이버는 데이터를 페치할 때 데이터를 잘라내고 오류 대신 "Success with Info" 결과를 반환합니다.
SQL
SQL 명령 형식을 지정하기 위한 옵션입니다.
기본 대/소문자
(없음|대문자|소문자) 데이터베이스에서 인용 부호가 없는 식별자의 대/소문자를 매핑하는 방법을 지정합니다. 예를 들어 SQL Server는 select colname from ... 및 select COLNAME from ...을 인용 부호가 있는 select [COLNAME] from ...과 동일하게 처리하므로 이 옵션을 "대문자"로 설정해야 합니다. 이 옵션은 의도한 대/소문자를 유지하기 위해 SQL 코드에서 식별자를 인용할 때를 파악하는 데 사용됩니다.
날짜 리터럴 형식
(함수) 제공된 함수를 사용하여 날짜 및 시간을 SQL 조각으로 변환합니다. "Default" 문자열이 제공되면 JMP에서 자체 변환을 사용합니다.
제공된 함수에는 날짜 또는 시간과 함께 "DATE", "TIME", "TIMESTAMP" 문자열 중 하나가 포함되어야 합니다.
계산식 편집기 모드
쿼리 빌더에서 계산된 열의 계산식을 편집하기 위해 사용할 때 계산식 편집기에 기본적으로 표시되는 함수 집합을 결정합니다.
일반
일반적으로 적용 가능한 함수 집합을 지정합니다.
Access
Access SQL과 관련된 함수 집합을 지정합니다.
DB2
IBM Db2와 관련된 함수 집합을 지정합니다.
JMP
JMP와 관련된 함수 집합을 지정합니다.
MySQL
MySQL과 관련된 함수 집합을 지정합니다.
Oracle
Oracle Database SQL과 관련된 함수 집합을 지정합니다.
SAS
SAS와 관련된 함수 집합을 지정합니다.
SQL Server
SQL Server와 관련된 함수 집합을 지정합니다.
모두
위의 옵션으로 사용할 수 있는 모든 함수를 포함합니다.
행 개수 SQL 생성
(함수) 제공된 함수를 사용하여 테이블의 행 수를 결정하는 SQL 쿼리를 계산합니다. 값 없음 옵션을 선택하면 행 수가 생성되지 않습니다. 쿼리 빌더는 이를 사용하여 테이블의 행 수를 표시합니다.
함수가 제공되면 스키마와 테이블 이름을 지정하는 두 개의 인수를 사용해야 하고 SQL 쿼리와 함께 문자열을 반환해야 합니다. 스키마를 사용하지 않는 경우 스키마 이름이 비어 있을 수 있습니다. 행 수를 알 수 없는 경우 결과 집합은 비어 있거나 값이 -1이어야 합니다.
다음 함수 예를 참조하십시오.
// Returns a query like:// SELECT NUM_ROWS FROM all_tables WHERE// table_name = 'my_table' AND owner = 'my_schema';Function({schema, table}, {quote string},quote string = Function({str}, "'" || Substitute(str, "'", "''") || "'");
Concat( "SELECT NUM_ROWS FROM all_tables WHERE table_name = ",quote string(table),
If(schema == "", "", " AND owner = " || quote string(schema)),
";")
);
키워드
(함수) SQL 코드에서 식별자가 아니라 키워드로 간주할 문자열을 지정합니다. 이 옵션은 식별자를 키워드로 해석하지 않도록 식별자를 인용할 때를 결정하는 데 사용됩니다.
인용 부호 유형
(Double ("id")|Single ('id')|SAS ('id'n)|Brackets ([id])|Backticks ('id')) 식별자에 사용되는 이스케이프 문자 및 인용 부호의 유형을 지정합니다.
Null 지원
(부울) IN 테스트 목록에 NULL을 사용할 수 있는지 여부를 지정합니다.
이 예에서는 "설정" 옵션을 사용하여 생성되는 코드 유형을 보여 줍니다.
col IN ("val1", "val2", NULL)
이 예에서는 "해제" 옵션을 사용하여 생성되는 코드 유형을 보여 줍니다.
col IS NULL OR col IN ("val1", "val2")
후행 세미콜론
(부울) 세미콜론으로 끝나는 SQL 쿼리를 드라이버에서 처리할지 여부를 지정합니다. 이는 쿼리 빌더에서 생성된 SQL 코드에 직접적인 영향을 미치지 않습니다.
인용되지 않은 이름의 정규 표현식
(정규 표현식) 키워드를 제외하지 않고 SQL 코드에서 인용되지 않은 이름으로 사용할 수 있는 이름과 매칭되는 제공된 정규 표현식을 사용하여 SQL 코드에서 식별자를 인용할 경우 지정합니다. 기본 정규 표현식은 ^[A-Za-z_][A-Za-z_0-9]*$이며, 문자 또는 밑줄과 그 뒤에 0개 이상의 문자, 밑줄, 숫자가 정확히 매칭됩니다.
SQL 집계 함수
SQL 집계 함수를 지정하기 위한 옵션입니다. 각 옵션은 함수를 제공하는 문자열과 함께 값 있음으로 설정되거나, 지원되지 않음을 나타내는 값 없음으로 설정됩니다.
예를 들어 평균 Distinct 함수의 기본 문자열은 "AVG(DISTINCT "이며, 이는 SELECT AVG(DISTINCT colname) FROM ...과 같이 고유 값의 평균을 계산하는 SQL 코드를 생성하는 데 사용됩니다.
SQL 결합
SQL 결합 옵션을 지정합니다. 이는 쿼리 빌더에서 예상 결합 유형을 결정하는 데 사용됩니다.
쌍별 결합 필요
(부울) 괄호로 묶어야 하는 쌍별 결합만 수행할 수 있는지 여부를 지정합니다.
다음 예에서는 이 옵션이 "설정"으로 지정된 경우 예상되는 쌍별 결합을 보여 줍니다.
SELECT *FROM (( table1 t1 LEFT OUTER JOIN table2 t2 ON ( t1.col2 = t2.col2 ) ) LEFT OUTER JOIN table3 t3 ON ( t1.col3 = t3.col3 ) ) ;다음 예에서는 이 옵션이 "해제"로 지정된 경우 허용되는 결합을 보여 줍니다.
SELECT *FROM table1 t1 LEFT OUTER JOIN table2 t2 ON ( t1.col2 = t2.col2 ) LEFT OUTER JOIN table3 t3 ON ( t1.col3 = t3.col3 ) ;교차 결합 지원
(부울) 교차 결합이 지원되는지 여부를 지정합니다.
완전 외부 결합 지원
(부울) 완전 외부 결합이 지원되는지 여부를 지정합니다.
내부 결합 지원
(부울) 내부 결합이 지원되는지 여부를 지정합니다.
왼쪽 외부 결합 지원
(부울) 왼쪽 외부 결합이 지원되는지 여부를 지정합니다.
오른쪽 외부 결합 지원
(부울) 오른쪽 외부 결합이 지원되는지 여부를 지정합니다.
SQL 표집
테이블에서 표집된 행을 반환하기 위해 SQL 표집을 구현하는 옵션입니다.
SQL 기반 표본 생성
(함수) 제공된 함수를 사용하여 표집을 구현하기 위해 코어 SQL 쿼리를 래핑할지 여부 및 방법을 결정합니다. 함수는 표본 설정을 지정하는 하나의 인수를 사용하며, 빈 문자열(래핑 안 함을 나타냄)을 반환하거나 자리 표시자 텍스트 ^QUERYSQL이 포함된 문자열(코어 쿼리를 삽입할 위치를 나타냄)을 반환합니다.
다음 예에서는 "First N"개 행의 표집을 구현합니다. 표본 유형이 "First N"인 경우 쿼리 템플릿을 반환하고 그렇지 않은 경우 빈 문자열을 반환하여 이를 수행합니다.
Function({qss}, {},If(qss << Get Sample Type != "First N", "",
"SELECT * FROM (^QUERYSQL) WHERE ROWNUM <= "|| Char(qss << Get Sample Amount)
)
);
표본 설정 개체는 다음과 같은 JSL 메시지를 지원합니다.
<< Get Sample Amount
표집 크기를 반환합니다. 이 값은 표본 유형에 따라 행 수 또는 백분율(0에서 100 사이)입니다.
<< Get Sample Is Repeatable
반복 가능 표집이 활성화되었는지 여부를 반환합니다.
<< Get Sample Seed
반복 가능 표집에 사용할 시드값을 반환합니다.
<< Get Sample Type
수행할 표집 유형을 반환합니다("Percent", "N Rows" 또는 "First N" 문자열 중 하나).
<< Get Use Block Sampling
블록 표집을 사용할지((1)) 아니면 행 표집을 사용할지((0))를 반환합니다.
SQL 표본 생성
여기에 제공된 함수는 SQL 쿼리에서 표집을 구현하는 데 사용되는 코드 및 해당 쿼리 내의 코드 위치를 결정합니다.
함수는 각각 표집 설정(위의 SQL 기반 표본 생성에서 설명됨)과 컨텍스트(문자열)를 지정하는 두 개의 인수를 사용합니다. 컨텍스트는 쿼리에서 JMP가 코드를 생성하는 위치를 나타냅니다.
다음과 같은 컨텍스트를 사용할 수 있습니다.
"Before Columns"
SELECT와 열 이름 사이의 값을 반환합니다.
"Before Alias"
첫 번째 테이블 이름과 별칭 사이의 값을 반환합니다.
"After From"
쿼리의 FROM 절과 다른 절 앞 사이의 값을 반환합니다.
"After Joins"
쿼리의 JOIN 절이 연결되는 위치와 다른 절(예: WHERE) 앞 사이의 값을 반환합니다.
"As Order By"
쿼리에서 ORDER BY 절을 대체하는 값을 반환합니다. 이는 아래의 "At End"와 유사하지만 값에 ORDER BY 절이 포함된 경우에 사용해야 합니다.
"At End"
SQL 쿼리 끝의 값을 반환합니다.
블록 표집 지원
(부울) Oracle의 SAMPLE BLOCK과 같이 개별 행보다 더 낮은 수준에서 블록 단위로(또는 블록 단위로만) 표집을 수행할 수 있는지 여부를 지정합니다.
반복 가능 표집 지원
(부울) Oracle의 SEED (123456)와 같이 시드값을 사용하여 표집을 재현할 수 있는지 여부를 지정합니다.
행 표집 지원
(부울) 표집을 행 단위로(또는 행 단위로만) 수행할 수 있는지 여부를 지정합니다.
처음 N개 행 표집 지원
(부울) PostgreSQL의 LIMIT 1000과 같이 사용자가 설정한 N에 대해 결과의 처음 N개 행 가져오기가 지원되는지 여부를 지정합니다.
N개 행 표집 지원
(부울) SQL Server의 TABLESAMPLE (1000 ROWS)과 같이 사용자가 설정한 N에 대해 결과에서 랜덤 N개 행 가져오기가 지원되는지 여부를 지정합니다.
N개 행 표집 및 정렬 지원
(부울) 다수의 랜덤 행 가져오기와 결과 정렬(ORDER BY 사용)을 동시에 사용할 수 있는지 여부를 지정합니다. ORDER BY RANDOM() LIMIT 1000 연산을 통해 다수의 랜덤 행 가져오기가 구현되어 ORDER BY 절을 일반적인 용도로 사용할 수 없는 PostgreSQL과 같은 데이터베이스의 경우 이 값은 "해제"입니다.
백분율 표집 지원
(부울) SQL Server의 TABLESAMPLE (10 PERCENT)과 같이 사용자가 설정한 N에 대해 결과의 표집 비율 가져오기가 지원되는지 여부를 지정합니다.
테스트
지정된 값을 사용하여 연결을 시도하고 테스트 성공 여부를 확인하는 메시지 상자를 표시합니다.
복사본 저장
ID를 제공하면 편집기의 현재 상태를 저장하고 해당 ID로 "데이터 커넥터 선택" 창의 사용 가능한 커넥터 목록에 등록합니다. 자세한 내용은 연결 설정에서 확인하십시오.
로그에 작성
편집기의 현재 상태를 로그에 기록합니다. 로그에 기록된 텍스트를 사용하여 구성 파일을 생성할 수 있습니다.
구성된 데이터 커넥터를 JMP 추가기능으로 저장하여 서로 다른 운영 체제에서도 여러 사용자가 공유하고 사용할 수 있습니다.
1. 파일 > 데이터베이스 > 데이터 커넥터를 선택합니다.
2. "커넥터" 필드의 빨간색 삼각형을 클릭합니다.
3. 커넥터 공유를 선택합니다.
4. 커넥터 레지스트리에서 공유할 각 커넥터를 두 번 클릭하거나, 커넥터를 선택한 후 > 버튼을 클릭하여 "선택한 커넥터" 필드에 추가합니다.
5. "다른 이름으로 추가기능 파일 저장" 창에서 저장을 선택합니다.
6. 데이터 커넥터가 JMP 추가기능 파일로 저장됩니다.
JMP 추가기능을 사용하여 공유 데이터 커넥터를 손쉽게 설치하고 관리할 수 있습니다. 자세한 내용은 JMP Scripting Guide의 “Manage JMP Add-Ins”에서 확인하십시오.
"구성 가능한 데이터 커넥터"를 사용하면 데이터베이스에 연결되는 데이터 테이블을 JMP Live에 게시하고 스케줄에 따라 새로 고칠 수 있습니다. 이를 통해 다양한 시스템의 여러 사용자가 JMP 및 JMP Live의 기능을 사용하여 하나의 데이터 소스에 액세스하고 분석할 수 있습니다.
"구성 가능한 데이터 커넥터"를 사용하여 생성된 데이터 테이블을 JMP Live에 게시하고 스케줄에 따라 새로 고칠 수 있습니다. "테이블 열기"와 비교할 때 이러한 데이터 테이블은 올바른 ODBC 드라이버를 지정하는 데 크게 의존하지 않으므로 새로 고침 스크립트를 더 쉽게 설정할 수 있습니다.
JMP Live에 보고서를 게시하는 방법에 대한 자세한 내용은 JMP Live에 보고서 공유에서 확인하십시오.