| 스피커 |
성적 증명서 |
| Georg Raming(Siltronic AG) |
안녕하세요 여러분. |
| |
오늘은 분산되고 복잡한 소스에서 데이터를 수집하기 위한 전략과 사례에 대해 이야기해 보고 싶습니다. |
| |
저는 Georg Raming입니다. Siltronic에서 단결정 성장 공정 개발을 담당하고 있습니다. 통계적 평가 및 공정 개발 경험이 있습니다. |
| |
제품 데이터 및 통계 교육도 담당하고 있습니다. 또한 Siltronic에서 JMP 소프트웨어와 수백 명의 사용자를 위한 교육 활동도 담당하고 있습니다. |
| |
실트로닉은 고도로 특수화된 초고순도 실리콘 웨이퍼를 생산하는 세계적인 선두 제조업체 중 하나입니다. |
| |
몇 가지 기술적인 힌트가 있습니다. 이 프레젠테이션에서는 데이터베이스 대신 데이터 테이블을 사용하고 있지만, 여기에 제시된 개념은 원래 ODBC 연결을 통해 관계형 데이터베이스에서 데이터를 가져오는 데 사용되었습니다. |
| |
JMP 쿼리 빌더는 JMP 데이터 테이블과 데이터베이스 테이블에서 비슷한 방식으로 작동합니다. |
| |
오늘 프레젠테이션의 목표는 무엇일까요? 데이터베이스에서 데이터를 쉽고 효율적으로 JMP 또는 JMP 테이블에 가져오는 방법을 살펴보겠습니다. |
| |
먼저 구성 요소에 대해 이야기해 보겠습니다. |
| |
따라서 하나는 JMP 데이터 테이블일 수 있습니다. |
| |
데이터베이스 쿼리에서 데이터 테이블을 생성했다면 다음과 같을 수 있습니다. JMP의 유명한 샘플 테이블인 Big Class를 가져와 JMP 쿼리 빌더를 통해 데이터를 쿼리했습니다. 테이블에 포함된 모든 스크립트는 삭제했습니다. |
| |
그리고 당신은 찾을 것이다 |
| |
이 데이터 테이블에 대해 JMP 쿼리 빌더, 여러 스크립트 및 테이블 변수를 사용하여 쿼리를 실행하는 경우. |
| |
해당 변수 안에서 SQL을 볼 수 있습니다. 즉, 데이터 테이블의 정의는 테이블이나 데이터베이스에서 가져옵니다. |
| |
그리고 이러한 스크립트가 있습니다. 간단히 말해서 소스 스크립트입니다. |
| |
원본 데이터 테이블의 또 다른 사본을 이렇게 얻습니다. 그리고 여기 원본 스크립트도 있는데, JMP 쿼리 빌더의 스크립트도 있습니다. |
| |
JMP 데이터 테이블에서 이 쿼리를 편집하고 실행할 수 있는 쿼리 수정 스크립트도 있습니다. |
| |
그리고 데이터베이스에서 업데이트 쿼리가 있습니다. 따라서 데이터 테이블의 데이터를 변경하면 |
| |
또는 데이터 테이블에 새로운 데이터가 있는 경우, 이 버튼을 눌러 간단히 데이터를 업데이트할 수 있습니다. |
| |
이렇게요. 여기도 스크립트가 샘플 테이블에서 다시 나왔습니다. |
| |
좋아요, 다음 구성 요소는 JMP 쿼리 빌더입니다. |
| |
따라서 데이터베이스에 하나 또는 여러 개의 테이블이 있으면 다음과 같이 쿼리를 만들고 싶습니다. JMP 샘플 테이블에서 Big Class 및 Big Class Families를 가져왔습니다. |
| |
디렉토리와 JMP 쿼리 빌더를 사용하세요 |
| |
여기 테이블에요. JMP 쿼리 빌더. |
| |
JMP는 이러한 열린 테이블을 봅니다. |
| |
그리고 기본 필드에도 하나 있는데, 이렇게 보조 테이블을 추가하면 JMP가 자동으로 두 테이블 사이에 조인을 생성합니다. 두 테이블이 어떻게 조인되는지 알려드리겠습니다. 이 조인을 편집할 수 있습니다. |
| |
이와 같이. |
| |
자세한 내용은 여기에서 확인하실 수 있습니다. |
| |
그런 다음 쿼리를 계속 작성할 수 있습니다. |
| |
이렇게요. 두 테이블 모두 여기에 있습니다. |
| |
여기서도 조인을 다시 편집할 수 있습니다. |
| |
그리고 아마도 당신은 모든 것을 추가하고 싶을 것입니다 |
| |
기둥, |
| |
이와 같이. |
| |
그리고 아마도 필터를 넣고 싶을 수도 있습니다. |
| |
이와 같이. |
| |
그리고 쿼리를 실행합니다. 그런 다음 다시 |
| |
스크립트로 이 결과 테이블을 얻으세요 |
| |
여기에는 필요하지 않은 샘플 테이블입니다. |
| |
삭제합니다. 그리고 이건 JMP 쿼리 빌더가 작성한 스크립트, 스크립트, 변수입니다. |
| |
이전에 사용했던 것처럼. 그리고 다시, 여기서 할 수 있습니다 |
| |
이 쿼리를 편집하세요. 쿼리 스크립트는 이전에 정의했던 대로 여기 결과 테이블에 저장됩니다. |
| |
JMP 쿼리 빌더는 이렇게 작동합니다. |
| |
앞서 언급했듯이, 이 작업은 JMP 샘플 테이블에서 작동하는 것과 동일한 방식으로 데이터베이스 테이블에서 작동합니다. |
| |
다음 건물... 여기에도 몇 가지 스크립트를 넣었고 항상 시각적 쿼리 빌더에서 전환할 수 있습니다. |
| |
사용자 정의 SQL에 |
| |
쿼리입니다. 여기서는 작동합니다. 또 다른 빨간색 삼각형 메뉴입니다. |
| |
사용자 정의 SQL로 변환하고 여기에 시각적으로 정의한 내용을 |
| |
여기서 텍스트 SQL 쿼리로 정의할 수 있습니다. |
| |
실행할 수 있습니다. |
| |
그리고 이 쿼리를 보거나 쿼리 수정 버튼을 누르면, |
| |
텍스트 쿼리가 표시됩니다. 따라서 이는 한 가지 방법일 뿐입니다. |
| |
시각적 쿼리에서 사용자 정의 SQL 쿼리로 변환합니다. |
| |
그럼 제가 정리해보겠습니다 |
| |
테이블 몇 개. 좋아요. |
| |
다음 구성 요소는 데이터베이스에서 데이터를 가져오는 것이며, 해당 데이터 소스에 대한 ODBC 연결이 필요합니다. |
| |
일반적으로 ODBC 데이터 원본과 드라이버는 IT 관리자가 설정합니다. 따라서 Windows에서는 |
| |
이러한 연결은 ODBC 데이터 소스 관리자에서 관리됩니다. |
| |
데이터베이스 소스의 비트 수가 JMP에 맞아야 한다는 점을 명심하세요. 따라서 이 경우 64비트 JMP 애플리케이션이 있으므로 64비트 드라이버가 필요합니다. |
| |
그리고 사용자 소스는 직접 설정할 수 있습니다. |
| |
시스템 DSN은 관리자가 설정하고, 다양한 유형의 데이터베이스에 대한 드라이버도 관리자가 설정합니다. |
| |
문제 해결의 경우 이 탭을 사용하여 추적할 수 있습니다. |
| |
질의가 어디로 갔는지, 그리고 문제가 무엇인지. |
| |
제 팁을 하나 드리자면, 이 데이터 소스에서 연결이 제대로 작동하는지 확인해 보세요. "구성"을 누르고 "데이터 소스 관리자"를 실행하면 자격 증명을 입력한 후 특정 소스에 대한 연결을 테스트할 수 있습니다. |
| |
그리고 모든 것이 괜찮다면 시스템에서 알려준다. |
| |
연결이 성공했습니다. |
| |
쿼리가 작동하지 않는 것은 Windows 탓이 아닙니다. |
| |
기타 자세한 내용은 JMP 매뉴얼의 설명서에서 확인할 수 있습니다. 예를 들어, JMP 사용 설명서 3장은 여기에서 확인할 수 있습니다. |
| |
도움말 메뉴 |
| |
그리고 JMP 문서 라이브러리도 있습니다. 이 모든 도구의 사용법이 자세히 설명되어 있습니다. |
| |
네, 스크립팅과 JSL, 즉 스크립팅 언어에는 SQL 데이터베이스 쿼리를 스크립팅하는 세 가지 방법이 있습니다. 첫 번째는 이전에 사용했던 새로운 SQL 쿼리입니다. JMP 메뉴의 테이블 아래에 있는 JMP 쿼리 빌더에서 JMP 테이블을 위한 JMP 쿼리를 찾을 수 있습니다. |
| |
데이터베이스의 경우 데이터베이스 쿼리 빌더에서 찾을 수 있습니다. |
| |
그리고 '새 SQL 쿼리'는 가장 강력한 명령입니다. 새 쿼리 객체를 생성하고 JMP 쿼리 파일로 저장할 수 있습니다. 데이터 테이블을 직접 생성할 수 있으며, 앞서 소스 수정 및 업데이트 스크립트에서 살펴본 것처럼 데이터 출처를 매우 정확하게 제공합니다. |
| |
JSL에서 데이터베이스에서 데이터를 쿼리하는 또 다른 명령은 open database 명령입니다. 이 명령들에 대한 설명은 스크립팅 인덱스에서도 확인할 수 있습니다. 예를 들어, |
| |
내가 타이핑하면 |
| |
열려 있는 |
| |
데이터 베이스, |
| |
모든 명령의 작동 방식은 여기에서 확인할 수 있습니다. |
| |
데이터베이스에 연결하고 쿼리를 입력하는 세 번째 방법은 데이터베이스 연결입니다. |
| |
세 단계가 필요합니다. 첫 번째 단계는 데이터베이스 연결을 생성하는 것입니다. 두 번째 단계는 하나 또는 여러 개의 쿼리를 데이터베이스에 연결하는 것입니다. 마지막으로 데이터베이스 연결을 닫아야 합니다. |
| |
마지막으로, 만약 당신이 좋은 대본을 썼다면요. |
| |
본인이나 동료들이 쉽게 접근할 수 있도록 해야 하는데, 적어도 두 가지 방법이 있습니다. 하나는 다른 사람들에게도 쉽게 제공할 수 있도록 추가 기능에 넣는 것입니다. 다른 하나는 제가 여기처럼 사용자 지정 메뉴에 넣는 것입니다. |
| |
그리고 당신은 그것을 찾을 수 있습니다 |
| |
메뉴에서, 여기 이렇게요. 제 시스템에는 두 개의 추가 기능이 설치되어 있습니다. |
| |
그리고 여기에 내 개인적인 것이 있습니다 |
| |
사용자 정의 메뉴. |
| |
자, 이제... 기본 구성 요소는 다 끝났습니다. 이제 예제를 살펴보죠. |
| |
첫 번째 예는 테이블 스크립트를 사용하여 테이블 레이아웃과 쿼리를 저장하는 것입니다. |
| |
그래서 이렇게 보일 수도 있습니다. 데이터 테이블이 있는 경우 |
| |
데이터베이스에서 몇 가지 스크립트를 추가하여 멋진 그래프도 만들 수 있습니다. |
| |
매일 사용하고 싶을 수도 있습니다. 그리고 여기에는 좋은 가능성이 있습니다. |
| |
즉, 데이터 없이 테이블 스크립트를 복사한다는 뜻입니다. |
| |
그리고 이 스크립트를 사용할 수 있습니다. |
| |
새로운 대본을 만들고 싶습니다. 죄송합니다. |
| |
스크립트 창에 붙여넣습니다. |
| |
그리고 스크립트 실행 버튼을 누르기만 하면 새로운 테이블이 생성됩니다. |
| |
데이터가 없는 ???로 표시됩니다. 예를 들어, 이 스크립트를 메뉴에 저장하여 데이터를 가져올 수 있습니다. 데이터가 엄청나게 많을 수도 있습니다. "데이터베이스에서 업데이트" 버튼을 누르면 테이블이 데이터베이스나 다른 곳에서 가져온 모든 데이터로 채워집니다. |
| |
그래서 이것은 좋은 가능성이네요 |
| |
간단히 스크립트를 사용하세요 |
| |
데이터베이스에서 데이터를 가져오려면. |
| |
두 번째 예 |
| |
테이블 내부에서 쿼리를 사용하는 것입니다. |
| |
이렇게요. 데이터 테이블이 있고, 현재 테이블의 내용에 따라 추가 데이터를 쿼리하고 싶은 경우입니다. |
| |
그러니 보여드리겠습니다. |
| |
일부 행을 삭제합니다. |
| |
그리고 이 세 가지 이름을 사용해서 다른 테이블로 가서 일부 데이터를 가져오고 싶습니다. |
| |
그리고 이 작업은 이 스크립트에 의해 수행됩니다. |
| |
그리고 여기 이 표에서 볼 수 있듯이, 나는 이름을 얻었고 쿼리를 만들었습니다. |
| |
Big Class Families의 다른 테이블에서 데이터를 쿼리합니다. |
| |
그러면 어떻게 작동하나요? |
| |
이 스크립트에서 찾을 수 있습니다. |
| |
꽤 짧습니다. 여기서 이름은 정의된 첫 번째 테이블 쿼리에서 가져옵니다. 예를 들어, 다음과 같습니다. |
| |
이름은 쿼리에 대체됩니다. |
| |
여기서 쿼리는 Big Class Families 테이블에 입력됩니다. |
| |
알겠습니다. 이 테이블도 닫아야겠습니다. |
| |
이것은 그래픽 사용자 인터페이스를 갖춘 맞춤형 쿼리 스크립트입니다. 예를 들어 데이터베이스에 대용량 데이터 테이블이 있고 소량의 데이터가 자주 필요한 경우, |
| |
물론 모든 데이터를 가져올 수도 있지만, 잘 필터링된 데이터를 얻는 것이 더 유연하고 효율적일 수 있습니다. 작동 방식은 다음과 같습니다. |
| |
데이터 필터링용 테이블 하나와 빅데이터 테이블의 모든 열을 담은 테이블 하나가 있습니다. 여기서는 그래픽 필터링을 할 수 있습니다. 예를 들어 여성과 연령을 기준으로 두 개의 열만 필터링했습니다. |
| |
이렇게, 12살, 13살. |
| |
모든 열을 포함하거나 한 열만 제거하고 싶을 수도 있습니다. |
| |
나는 그것을 질문한다 |
| |
그리고 여기서 이러한 제한 사항을 적용하여 적절한 결과를 얻을 수 있습니다. 그리고 여기에서 볼 수 있듯이, 소스 스크립트나 SQL에서 |
| |
제한 사항은 여기에 있습니다 |
| |
그래픽 사용자 인터페이스에서 정의됨. |
| |
그리고 어떻게 |
| |
스크립팅 작업이 작동합니까? 조금 |
| |
물론 더 복잡하죠. 그래서 필터 쿼리가 있습니다. |
| |
열 쿼리. |
| |
다음은 스크립트이며 변환하는 함수입니다. |
| |
데이터 필터 조건을 SQL 조건으로 변환합니다. |
| |
이것은 GUI 부분, 즉 그래픽 사용자 인터페이스입니다. |
| |
마지막으로 그래픽 사용자 인터페이스 결과를 평가하여 이 사용자 정의 스크립트에 넣습니다. |
| |
다음 예제는 2단계 쿼리입니다. 먼저 배치 ID를 쿼리해야 한다고 가정해 보겠습니다. |
| |
그리고 이러한 ID를 다른 쿼리로 가져오거나 추가 데이터를 얻기 위해 다른 데이터 테이블로 가져오는 것이 좋습니다. |
| |
이렇게 할 수 있습니다. 여기서는 Big Class 데이터 테이블을 필터로 사용했습니다. 그래서 남성만 필터링했습니다. |
| |
그리고 |
| |
13세 이하의 학생. |
| |
그리고 이 이름들을 Big Class Families에 쿼리로 넣었습니다. 모든 행은 여기에서 볼 수 있듯이요. |
| |
그리고 |
| |
두 테이블은 여기에서 볼 수 있듯이 가상 조인을 통해 연결됩니다. |
| |
그래서 |
| |
이 테이블은 이름을 통해 다른 테이블의 필터 테이블을 참조합니다. 그리고 다음을 사용할 수 있습니다. |
| |
여기 이 표의 필터 표의 열은 마치 |
| |
이 표에서. |
| |
따라서 이것은 여러 개의 표를 가지고 그 내용을 하나의 표에서 사용할 수 있는 좋은 방법입니다. |
| |
그리고 마지막 예는 다음과 같습니다. |
| |
백그라운드에서 두 개 이상의 쿼리를 병렬로 실행하는 방법입니다. 따라서 여기에 예제가 없습니다. JMP 커뮤니티에서 논의되고 있습니다. 관심 있으시면 참고해 보세요. |
| |
이제 예제를 모두 마쳤고 저널과 프레젠테이션 자료 스크립트는 온라인에서 볼 수 있습니다. |
| |
훌륭한 토론을 해주신 커뮤니티 여러분께 감사드리고, 이 훌륭한 소프트웨어를 개발하고 유지 관리해 주신 JMP 개발자분들께도 감사드립니다. 마지막으로, 귀 기울여 주셔서 감사합니다. |