스피커
|
성적 증명서
|
| 게오르그 라밍(실트로닉 AG) |
모두들 안녕. |
| |
오늘 저는 분산되고 복잡한 소스로부터 데이터를 수집하기 위한 전략과 예에 대해 이야기하고 싶습니다. |
| |
제 이름은 Georg Raming이고 제 직업은 ???의 프로세스 개발입니다. Siltronic에서 단결정을 성장시켰습니다. 통계적 평가 및 프로세스에 대한 경험이 있습니다. |
| |
제품 데이터 및 통계 교육. 저는 Siltronic에서 JMP 소프트웨어와 수백 명의 사용자를 대상으로 한 교육 활동도 담당하고 있습니다. |
| |
Siltronic은 고도로 전문화된 초순수 실리콘 웨이퍼를 생산하는 세계 최고의 제조업체 중 하나입니다. |
| |
몇 가지 기술적 힌트. 따라서 저는 이 프레젠테이션에서 데이터베이스 대신 데이터 테이블을 사용하여 작업하고 있지만 여기에 표시된 개념은 원래 ODBC 연결을 통해 관계형 데이터베이스에서 데이터를 가져오는 데 사용되었습니다. |
| |
그리고 JMP 쿼리 빌더는 JMP 데이터 테이블과 데이터베이스 테이블에 대해 비슷한 방식으로 작동합니다. |
| |
오늘 발표의 대상은 무엇입니까? 쉽고 효율적인 방법으로 데이터베이스의 데이터를 JMP나 JMP 테이블로 가져오는 몇 가지 방법을 확립하는 것입니다. |
| |
먼저 빌딩 블록에 대해 이야기하겠습니다. |
| |
따라서 하나는 JMP 데이터 테이블일 수 있습니다. |
| |
따라서 데이터베이스 쿼리에서 데이터 테이블을 생성한 경우 다음과 같을 수 있습니다. 그래서 저는 JMP, Big Class의 유명한 샘플 테이블을 여기에 가져와 JMP Query Builder를 통해 데이터를 쿼리했습니다. 테이블과 함께 제공되는 모든 스크립트를 삭제했습니다. |
| |
그리고 당신은 찾을 것입니다 |
| |
JMP 쿼리 빌더, 여러 스크립트 및 테이블 변수로 쿼리하는 경우 이 데이터 테이블에 대해 |
| |
따라서 해당 변수 내부에서 SQL을 볼 수 있습니다. 따라서 데이터 테이블의 정의는 테이블이나 데이터베이스에서 가져옵니다. |
| |
그리고 다음과 같은 스크립트가 있습니다. 소스 스크립트는 간단히 말해서 |
| |
이와 같은 원본 데이터 테이블의 또 다른 복사본을 얻습니다. 여기서는 원본 스크립트도 볼 수 있지만 JMP 쿼리 작성기에서 가져온 스크립트도 있습니다. |
| |
JMP 데이터 테이블에서 이 쿼리를 편집하고 실행할 수 있는 쿼리 수정 스크립트도 있습니다. |
| |
그리고 데이터베이스에서 업데이트에 대한 쿼리가 있습니다. 따라서 데이터 테이블의 데이터를 변경하면 |
| |
또는 데이터 테이블에 새로운 데이터가 있는 경우, 이 버튼을 눌러 간단히 데이터를 업데이트할 수 있습니다. |
| |
이와 같이. 여기에서도 스크립트가 샘플 테이블에서 다시 나왔습니다. |
| |
좋습니다. 다음 빌딩 블록은 JMP 쿼리 빌더입니다. |
| |
따라서 데이터베이스에 하나 이상의 테이블이 있으면 여기와 같이 쿼리를 만들고 싶습니다. JMP 샘플 테이블에서 Big Class 및 Big Class Families를 가져왔습니다. |
| |
디렉토리를 선택하고 다음과 같은 JMP 쿼리 빌더를 사용하세요. |
| |
여기 테이블 위에요. JMP 쿼리 빌더. |
| |
JMP는 이러한 열린 테이블을 봅니다. |
| |
기본 필드에도 하나가 있는데, 이와 같은 보조 테이블을 추가하면 JMP가 자동으로 두 테이블 사이에 조인을 생성합니다. 그래서 그들이 어떻게 결합되는지. 그리고 이 조인을 편집할 수 있습니다. |
| |
이와 같이. |
| |
자세한 내용은 여기에서 확인하실 수 있습니다. |
| |
그런 다음 계속해서 쿼리를 작성할 수 있습니다. |
| |
이와 같이. 여기에 두 테이블을 모두 사용할 수 있습니다. |
| |
여기에서 조인을 다시 편집할 수도 있습니다. |
| |
어쩌면 당신은 모두 추가하고 싶을 수도 있습니다 |
| |
열, |
| |
이와 같이. |
| |
그리고 필터를 넣고 싶을 수도 있습니다. |
| |
이와 같이. |
| |
그리고 쿼리를 실행해 보세요. 그럼 당신은 다시 |
| |
스크립트를 사용하여 이 결과 테이블을 가져옵니다. |
| |
여기에는 필요하지 않은 샘플 테이블이 있습니다. |
| |
삭제합니다. 그리고 JMP Query Builder에서 작성한 스크립트, 스크립트 및 변수는 다음과 같습니다. |
| |
내가 전에 사용했던 것처럼. 그리고 다시, 여기에서 할 수 있습니다 |
| |
이 쿼리를 편집하세요. 쿼리에 대한 스크립트는 이전에 정의한 것처럼 여기 결과 테이블에 저장됩니다. |
| |
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 쿼리 빌더에 있습니다. |
| |
또는 데이터베이스의 경우 여기 데이터베이스 쿼리 작성기에서 찾을 수 있습니다. |
| |
그리고 New SQL Query는 가장 강력한 명령입니다. 따라서 새로운 쿼리 개체가 생성되며, 자체적으로 JMP 쿼리 파일로 저장할 수 있습니다. 이전에 소스 수정 및 업데이트 스크립트에서 본 것처럼 데이터 테이블을 직접 생성하고 데이터 출처를 매우 잘 제공할 수 있습니다. |
| |
데이터베이스에서 데이터를 쿼리하는 JSL의 또 다른 명령은 open Database 명령입니다. 스크립팅 인덱스에서도 이러한 모든 명령에 대한 문서를 찾을 수 있습니다. 여기처럼, |
| |
내가 입력하면 |
| |
열려 있는 |
| |
데이터 베이스, |
| |
여기에서 모든 명령에 대해 어떻게 작동하는지 확인할 수 있습니다. |
| |
데이터베이스에 연결하고 쿼리를 넣는 세 번째 방법은 데이터베이스 연결입니다. |
| |
그리고 세 단계가 필요합니다. 첫 번째는 데이터베이스 연결을 만드는 것입니다. 두 번째는 하나 또는 여러 개의 쿼리를 데이터베이스에 저장하는 것입니다. 그리고 완료하려면 데이터베이스 연결을 닫아야 합니다. |
| |
그리고 마지막으로, 좋은 스크립트를 작성했다면. |
| |
자신이나 동료가 액세스할 수 있도록 해야 하며 최소한 두 가지 방법이 있습니다. 그래서 하나는 다른 사람에게도 쉽게 제공할 수 있도록 추가 기능에 넣는 것입니다. 또 다른 가능성은 제가 여기서 했던 것처럼 사용자 정의 메뉴에 넣는 것입니다. |
| |
그리고 당신은 그것을 찾을 수 있습니다 |
| |
메뉴에서 다음과 같이 여기 있습니다. 내 시스템에는 두 개의 추가 기능이 설치되어 있습니다. |
| |
그리고 여기 내 개인적인 것이 있습니다 |
| |
맞춤 메뉴. |
| |
그럼...우리는 빌딩 블록을 완성했습니다. 예제를 살펴보겠습니다. |
| |
그리고 첫 번째 예는 테이블 스크립트를 사용하여 테이블 레이아웃과 쿼리를 저장하는 것입니다. |
| |
그래서 이렇게 보일 수도 있습니다. 제공되는 데이터 테이블이 있는 경우 |
| |
데이터베이스에서 가져온 다음 멋진 그래프를 위해 몇 가지 스크립트를 넣습니다. |
| |
매일 사용하고 싶을 수도 있습니다. 그리고 여기에 좋은 가능성이 있습니다 |
| |
즉, 데이터 없이 테이블 스크립트를 복사합니다. |
| |
그런 다음 이 스크립트를 사용할 수 있습니다. |
| |
새로운 스크립트를 만들고 싶습니다. 죄송합니다. |
| |
그리고 스크립트 창에 붙여넣으세요. |
| |
Run Script 버튼을 누르면 새로운 테이블이 나타납니다. |
| |
그리고 데이터 없이 ???로 나옵니다. 예를 들어 이 스크립트를 메뉴에 저장할 수 있으며 데이터를 얻으려면 엄청난 양의 데이터가 필요할 수 있습니다. 간단히 데이터베이스에서 업데이트 버튼을 누르면 테이블이 데이터베이스나 다른 곳의 모든 데이터로 채워집니다. |
| |
그럼 이건 좋은 가능성이군요 |
| |
단순히 스크립트를 사용하려면 |
| |
데이터베이스에서 데이터를 가져옵니다. |
| |
두 번째 예 |
| |
테이블 내부에서 쿼리를 사용하는 것입니다. |
| |
그래서 이렇게. 데이터 테이블이 있고 현재 테이블의 내용에 따라 추가 데이터를 쿼리하려는 경우. |
| |
그래서 보여드리겠습니다. |
| |
일부 행을 삭제합니다. |
| |
그리고 이 세 가지 이름을 사용하여 다른 테이블로 이동하여 일부 데이터를 가져오고 싶습니다. |
| |
그리고 이 스크립트에 의해 수행됩니다. |
| |
그리고 여기 이 테이블에서 볼 수 있듯이, 저는 이름을 얻고 쿼리를 했습니다. |
| |
Big Class Families의 다른 테이블에서 데이터를 쿼리합니다. |
| |
어떻게 작동하나요? |
| |
이 스크립트에서 찾을 수 있습니다. |
| |
꽤 짧습니다. 여기에서 이름은 여기와 같이 정의된 첫 번째 테이블 쿼리에서 가져옵니다. |
| |
이름이 쿼리로 대체됩니다. |
| |
그리고 여기서 쿼리는 Big Class Families 테이블에 배치됩니다. |
| |
좋아요, 이 테이블도 닫아야겠어요. |
| |
이것은 그래픽 사용자 인터페이스를 갖춘 사용자 정의 쿼리 스크립트입니다. 예를 들어, 데이터베이스에 대규모 데이터 테이블이 있고 종종 소량이 필요한 경우 |
| |
물론 모든 데이터를 가져올 수도 있지만 잘 필터링된 데이터를 얻는 것이 더 유연하고 효율적일 수도 있습니다. 그래서 이렇게 작동합니다. |
| |
데이터 필터링을 위한 테이블 하나와 빅데이터 테이블의 모든 열이 포함된 테이블 하나. 여기서는 그래픽으로 필터링할 수 있습니다. 여성과 연령을 가정해 보겠습니다. 따라서 두 개의 열만 사용하여 필터링했습니다. |
| |
이렇게 12살, 13살. |
| |
그리고 모든 열을 포함하거나 하나의 열만 제거하고 싶을 수도 있습니다. |
| |
나는 그것을 쿼리한다 |
| |
여기서는 이러한 제한 사항에 따라 적절한 결과를 얻습니다. 여기에서 볼 수 있듯이 소스 스크립트나 SQL에서 다음을 수행할 수 있습니다. |
| |
제한 사항은 여기에 있습니다 |
| |
정의된 그래픽 사용자 인터페이스에서. |
| |
그리고 어떻게 |
| |
스크립팅 작업이 작동합니까? 조금이다 |
| |
물론 더 복잡합니다. 그래서 필터 쿼리가 있습니다. |
| |
열 쿼리입니다. |
| |
다음은 스크립트를 변환하는 함수입니다. |
| |
데이터 필터 조건을 SQL 조건으로 변환합니다. |
| |
GUI 부분, 그래픽 사용자 인터페이스입니다. |
| |
그리고 여기서 마지막으로 그래픽 사용자 인터페이스 결과가 평가되어 이 사용자 정의 스크립트에 입력됩니다. |
| |
다음 예는 2단계 쿼리입니다. 따라서 먼저 일부 배치 ID를 쿼리해야 한다고 가정해 보겠습니다. |
| |
추가 데이터를 얻기 위해 이러한 ID를 다른 쿼리로 가져오거나 다른 데이터 테이블로 가져오려면 |
| |
이렇게 하면 됩니다. 그래서 여기서는 Big Class 데이터 테이블을 필터로 사용했습니다. 그래서 남자만 필터링했어요 |
| |
그리고 |
| |
13세 이하의 학생. |
| |
그리고 이 이름을 사용하여 여기에서 볼 수 있는 것처럼 Big Class Families, 모든 행에 대해 쿼리했습니다. |
| |
그리고 |
| |
여기에서 볼 수 있듯이 두 테이블은 모두 가상 조인을 통해 연결됩니다. |
| |
그래서 |
| |
이 테이블은 이름을 통해 다른 테이블과 필터 테이블을 참조합니다. 그리고 나는 사용할 수 있습니다 |
| |
여기 이 테이블에 있는 필터 테이블의 열은 마치 |
| |
이 테이블에. |
| |
따라서 이는 여러 개의 테이블을 갖고 하나의 테이블에 있는 콘텐츠를 사용하는 좋은 방법입니다. |
| |
그리고 마지막 예는 |
| |
백그라운드에서 두 개 이상의 쿼리를 병렬로 실행하는 방법 그래서 여기에는 예가 없습니다. 이에 대해서는 JMP 커뮤니티에서 논의됩니다. 그리고 관심이 있다면 한 번 살펴보세요. |
| |
이제 예제가 끝났고 저널과 프레젠테이션 자료 스크립트를 온라인에서 사용할 수 있습니다. |
| |
훌륭한 토론을 해주신 커뮤니티에 감사드리며, 이 훌륭한 소프트웨어를 구축하고 유지관리해주신 JMP 개발자들에게도 감사드립니다. 마지막으로 관심을 가져주셔서 감사합니다. |