MicroStrategy ONE

Python 활성화 트랜잭션 대시보드 만들기

MicroStrategy ONE 에서 시작  (2024년 3월)부터 MicroStrategy Cloud 환경 및 MicroStrategy Cloud for Government 플랫폼에서 Python 활성화 트랜잭션 대시보드를 만들 수 있습니다. Python 지원 트랜잭션 대시보드를 생성 및 실행하려면 다음을 수행해야 합니다.

  • 환경이 Python 실행기 사용을 지원하는지 확인합니다.

    이 기능은 Microstrategy Cloud 환경 플랫폼에서 지원됩니다. 연락처전략 지원을(를) 클릭하여 이 기능을 활성화합니다.

  • 데이터 변경 사항을 다시 작성하기 위한 공용 엔드포인트가 있는 데이터 소스 선택

  • 메타데이터를 최신 버전으로 업데이트

  • 트랜잭션 활성화 대시보드 만들기

  • 사용자 정의 런타임을 만들고 필요한 모든 Python 패키지를 해당 런타임의 일부로 다운로드합니다.

  • 필요한 데이터 조작 작업으로 Python 스크립트 만들기

  • 연결된 스크립트로 대시보드 구성

시작하기트랜잭션 활성화된 대시보드 생성을(를) 선택한 다음 아래 단계를 따릅니다.

사용자 정의 런타임 만들기

런타임 관리 권한이 필요합니다. 이 권한을 보유한 사용자는 타사 패키지를 다운로드할 수 있으므로 검증된 분석가만 이 권한을 보유해야 합니다.

참조Python 런타임 만들기 및 편집자세한 내용은 을(를) 참조하십시오.

런타임 관리 권한이 있는 사용자는 현재 기존 런타임을 보고 관리하고 새 런타임을 생성할 수 있습니다. 모든 환경에는 기본 런타임이 있습니다. 런타임을 생성할 때 사용자는 이름, 설명, 연결할 수 있는 주소, 설치된 패키지를 변경하고 스크립트 실행을 위한 크기를 선택할 수 있습니다. 런타임 인스턴스의 크기에 따라 해당 런타임과 연결된 각 스크립트 실행에 사용 가능한 리소스(CPU 및 메모리)가 결정됩니다.

  1. 워크스테이션 열기 및환경에 연결 .
  2. 탐색 창에서 을(를) 클릭합니다. 모니터 .

    모든 환경의 기본 런타임 이름은 (기본값) MicroStrategy .

    기본 런타임에는 최신 버전의 Python 및 mstrio 패키지 모두와 기본 인스턴스 크기 및 기본 네트워크 액세스 구성이 포함됩니다. 사용자는 mstrio 패키지를 사용하여 액세스할 수 있습니다. MicroStrategy기본 런타임을 사용하여 데이터를 검색합니다.

    사용자는 기본 런타임의 구성을 변경할 수 없습니다. 사용자가 인스턴스 크기, 네트워크 액세스 또는 패키지 구성을 사용자 정의하려면 새 런타임을 생성해야 합니다.

  3. 왼쪽 창에서 을(를) 클릭합니다. 다음런타임 .

  4. 을(를) 입력런타임 이름설명 . 새로 만든 런타임이 최신 런타임을 사용합니다. Python 버전 . 기존 런타임의 경우 최신 Python 버전으로 업그레이드할 수 있습니다. 기본값런타임 인스턴스 크기현재 0.2 vCPU 0.5GB 메모리 .

  5. 안에 있음네트워크 액세스인 경우, Python 런타임에서 액세스가 허용된 네트워크로 전환됩니다. 형식은 다음과 같아야 합니다. 클래스 없는 CIDR(도메인 간 경로 지정)형식(예: 141.193.213.21/32)입니다.

  6. 클릭왼쪽 하단의 을(를) 클릭하여 Python 런타임에 설치할 새 패키지를 추가합니다. 패키지 버전을 제공하지 않으면 최신 버전이 설치됩니다. [ 패키지 이름][ 공백][ 패키지 버전] 형식을 사용합니다.

    예:

    • 요청 2.28.1

    • 요청

  7. 추가를 클릭합니다.

  8. 패키지는 일반적으로 데이터 소스에 대한 연결을 지원하여 데이터 변경 사항을 다시 작성하고 다음을 사용하여 조작을 지원합니다. MicroStrategy API를 사용하거나 Microsoft Teams와 같은 다른 애플리케이션에 연결합니다. PyPI 링크를 클릭하여 다운로드할 정확한 패키지 이름 및 버전을 찾습니다.

  9. 클릭추가을(를) 클릭하여 런타임을 저장하고 설치가 완료될 때까지 기다립니다. 페이지를 새로 고쳐 상태를 확인합니다.

몇 가지 유용한 도움말:

  • 각 필드( 네트워크 액세스, 패키지 이름 및 버전)를 입력한 후 Enter를 누르십시오. 추가또는확인을(를) 클릭하여 변경을 확인합니다.

  • 하나의 런타임에 둘 이상의 패키지를 추가할 수 있습니다.

  • 환경에서 다른 환경으로 개체를 마이그레이션한 후 새 환경에서 패키지를 다시 추가하여 런타임을 준비하십시오. 이 추가 단계가 없으면 런타임이 작동하지 않습니다.

  • 기본적으로모든 사용자이(가) 있음보기런타임에 대한 ACL.

사용자 정의 Python 스크립트 만들기

다음 권한을 가진 사용자를 설정합니다.

  • 스크립트 Python 사용

  • Python 스크립트 인증

  • 다음 ACL이 권장됩니다.

    • 읽기 스크립트에는 스크립트에 대한 읽기 ACL이 필요합니다.

    • 업데이트 스크립트에는 스크립트에 쓰기 ACL이 필요합니다.

    • 스크립트 실행을 위해서는 스크립트에서 실행 ACL과 런타임에서 실행 ACL이 필요합니다.

  1. 워크스테이션 열기 및환경에 연결 .
  2. 탐색 창에서 을(를) 클릭합니다. 다음스크립트 .

  3. 스크립트 설정을 열고 스크립트 유형을 (으)로 변경할 수 있습니다. 트랜잭션적절한 Python 런타임을 선택합니다.

  4. 갤러리에서 템플릿을 선택하고 수정하여 스크립트를 만들거나 처음부터 시작합니다.

  5. 스크립트의 변수는 일반적으로 대시보드 그리드의 열에 매핑됩니다. 변수를 정의할 때매개 변수는 기본적으로 켜져 있습니다. 데이터 소스에 연결하는 등 내부 사용을 위한 변수인 경우 등 비트랜잭션 변수에 대해 이 옵션을 끄십시오.

  6. 데이터 소스 연결 암호로 비트랜잭션 유형 변수를 선택하십시오. 암호 .

  7. 시스템 프롬프트 변수를 포함하여 사용자의 로그인을 기록하고 데이터를 변경하는 사람을 확인하는 것을 고려하십시오.

  8. 기본 작업 유형은 선택, 삽입 및 업데이트입니다. 이 외에도 선택 및 업데이트 결합 등 새 작업 유형을 생성하려면 을(를) 선택합니다. 트랜잭션 시간있음변수 유형 . 단일 Python 트랜잭션 스크립트에서는 1개의 변수만 다음으로 설정할 수 있습니다. 트랜잭션 시간 .

  9. 라이트백 데이터 소스에서 테이블의 기본 키에 매핑되는 변수의 경우 소비자가 기본 키를 수정하는 것을 원합니다. 이런 경우에는편집 가능매개 변수.

  10. NULL 값을 허용하지 않는 데이터 소스의 열의 경우, 을(를) 켜서 이 변수를 필수로 표시합니다. 필수매개 변수.

  11. 변수가 아닌 경우필수 , 작성자는 데이터베이스에서 허용하는 범위에 따라 열을 비워 둘 수 있는지 선택할 수 있습니다.

  12. 사용자가 편집하도록 하려는 열에서편집 가능매개 변수.

  13. 인증된 트랜잭션 Python 스크립트만 트랜잭션 작업에 사용할 수 있으므로 프로덕션에서 사용할 준비가 되면 스크립트를 인증해야 합니다. Python 트랜잭션 그리드를 사용할 사용자 그룹에 이 스크립트에 대한 보기 ACL이 있어야 합니다.

모범 사례

  • 샘플 코드 템플릿에서 알아보십시오.

  • 단위 트랜잭션을 지원하는 데이터 소스의 경우 런타임을 준비할 때 단위 트랜잭션을 지원할 패키지를 선택하십시오. Python 스크립트에서 섹션을 추가하여 원자 트랜잭션을 처리합니다.

  • 해당하는 경우 매개 변수화된 쿼리를 사용합니다. 이러한 방식으로 실행된 쿼리는 쿼리와 매개 변수가 실행을 위해 별도로 전송되기 때문에 삽입 공격에 취약하지 않습니다.

  • Python 트랜잭션 스크립트 작성자와 트랜잭션 대시보드 작성자가 동일인이 아닐 수 있으므로 스크립트와 대시보드 사이의 Parity를 확인하십시오. 여기에는 라이트백할 데이터 소스 테이블의 정의, Python 스크립트에 정의된 변수와 대시보드 트랜잭션 그리드 개체(개체 편집 가능) 간의 매핑 관계 등이 포함됩니다.

  • Python 스크립트가 지원하는 기능(데이터 업데이트, 새 데이터 삽입, 삭제 또는 다른 테이블에 삽입할 행 선택, Microsoft Teams 메시지 보내기, 이메일 보내기 등)에 대한 자세한 설명이 스크립트에 포함되어야 합니다. 대시보드 작성자는 대시보드 편집기에서 Python 스크립트에 대한 설명을 검색할 수 있습니다. 적절한 권한 및 ACL이 있는 사용자만 Python scr을 열 수 있습니다.

연결된 Python 스크립트로 대시보드 구성

필요한 권한

대시보드에서 트랜잭션을 구성하려면:

  • Web 구성 트랜잭션

  • 스크립트 Python 사용

  • 연결된 스크립트에 대한 ACL 보기

사용자가 대시보드를 사용하고 변경 사항을 제출하도록 설정하려면:

  • 트랜잭션 실행

  • 스크립트에 대한 ACL 보기

기타 기본적으로 필요한 Library Web 권한:

  • Library Web 사용

  • Web 대시보드 만들기

  • Web 대시보드 편집

  • Web 대시보드 저장

  • Web 대시보드 실행

  • 애플리케이션 개체 만들기

  1. Python 기반 트랜잭션은 최신 그리드에서 작동하도록 설계되었습니다. 그리드를 선택하고 포맷 패널을 연 후 을(를) 클릭합니다. 트랜잭션 옵션 .

  2. 클릭 Python 사용 .

  3. 작업 유형을 선택하고 사용자 정의된 작업 이름, 버튼 이름 등을 제공합니다.

    • 작업 유형은 소비자가 이 대시보드에서 수행할 수 있도록 하려는 작업입니다. 최소한 1개의 작업 유형을 선택해야 합니다.

    • 작업에 의미 있는 이름을 지정하고, 작업이 수행할 수 있는 작업을 설명하고, 버튼에 이름을 지정합니다.

      예:

      • 작업 이름고객 연령 업데이트

      • 설명고객-연령 열에서 고객의 연령을 업데이트하십시오.

      • 버튼 이름제출

    • 작업을 결합할 수 있습니다. 예를 들어, 기존 데이터를 수정하는 동시에 데이터 행을 더 추가할 수 있습니다. 이 동작을 적절하게 반영하는 작업 이름을 선택하십시오.

  4. 클릭 Python 스크립트 선택을(를) 사용하여 대시보드가 있는 프로젝트에서 모든 트랜잭션 Python 스크립트를 검색합니다. 기본적으로 인증된 스크립트만 표시됩니다. 필터를 사용하여 목록을 탐색하고 대상 스크립트를 찾습니다.

  5. 스크립트를 선택하면 매핑 섹션이 나타납니다. 선택한 스크립트 이름은 스크립트 설명을 표시하는 정보 아이콘과 함께 표시됩니다. 이 섹션의 오른쪽 상단에는 선택한 스크립트를 대체하는 아이콘과 메타데이터에서 스크립트 목록을 새로 고치는 아이콘이 제공됩니다. 데이터가 필요한 변수는 별표(*)로 표시됩니다. 이러한 경우 구성을 저장하는 매핑을 제공해야 합니다.

    작업 유형

    • 그리드에서 데이터 수정 허용해당편집 가능옵션이 활성화되었습니다. 작성자는 소비자가 수정할 수 있기를 원하는 변수를 선택할 수 있습니다.

    • 그리드에 데이터 추가해당새 데이터 입력옵션이 선택되었으며 소비자가 삽입할 수 있는 변수를 선택할 수 있습니다.

    • 선택한 행에서 작업해당편집 가능새 데이터 입력옵션이 모두 비활성화되었습니다. 이러한 경우 행 번호가 스크립트에 전달됩니다. 스크립트는 해당 행에서 수행되는 작업을 결정합니다. 예를 들어, 이 작업을 사용하여 그리드에서 행을 삭제할 수 있습니다.

  6. 입력 컨트롤을 구성하려면 을(를) 참조하십시오. 그리드에서 트랜잭션 만들기 .

  7. 클릭을(를) 클릭하여 작업을 더 추가하고 제출 후 표시할 메시지를 구성합니다.

  8. 클릭완료트랜잭션을 완료하고저장대시보드입니다.

모범 사례

  • 데이터 변경 사항을 다시 작성하기 위한 데이터 소스에 따라 일반적으로 SQL 기반의 데이터 소스가 첫 번째 선택됩니다. 데이터 소스가 웹 서비스인 경우 Python이 기본 옵션입니다.

  • 이메일 전송, Slack 업데이트 등의 작업과 데이터 변경 사항을 결합하는 보다 복잡한 워크플로의 경우 Python 스크립트를 사용하십시오.

  • 쉬운 입력 제어 구성을 위해 스크립트 변수와 그리드 개체 사이의 일대일 매핑 관계와 그리드 개체의 편집 가능 여부를 정의하는 것이 좋습니다.

데이터 작업에 Python 트랜잭션 사용

  1. 인라인 편집은 Python 기반 트랜잭션에 지원되지 않으므로 모든 데이터 수정이 대량 모드에서 수행됩니다. 클릭펜 아이콘을(를) 클릭하여 데이터 수정을 시작합니다.

  2. 단일 작업에 대해 선택 및 데이터 수정이 모두 지원됩니다.

  3. 선택, 수정 또는 데이터 삽입을 지원하는 작업의 경우 을(를) 클릭하십시오. 데이터 추가을(를) 클릭하여 새 데이터를 제공합니다. 완료되면 을(를) 클릭합니다. 추가 .

  4. 제출을 클릭합니다.

시스템 구성 권장 사항

컨테이너화된 환경을 사용하면MicroStrategy컴퓨터를 실행 중인 상태로 둘 필요가 없습니다. 이러한 환경에 스크립트를 저장하고 Workstation 내 어디에서나 액세스할 수 있을 뿐 아니라 다른 관리자에게 액세스를 제공할 수 있습니다. 현재 서버 측 스크립트 실행 지원은 컨테이너화된 환경에서만 켜집니다.

다음과 같은 방법으로 Python 트랜잭션 요청의 성능을 개선할 수 있습니다.

런타임 인스턴스 크기 조정

  1. 탐색 창에서 을(를) 클릭합니다. 모니터 .

  2. 왼쪽 창에서 을(를) 클릭합니다. 런타임 .

  3. 그리드에서 런타임을 마우스 오른쪽 버튼으로 클릭하고 선택합니다. 편집 .

  4. 조정런타임 인스턴스 크기 .

런타임 크기를 변경해야 하는 이유는 무엇입니까?

기본 런타임 크기가 스크립트의 메모리 요구에 충분하지 않을 수 있습니다. 런타임 크기를 늘려 오류나 충돌 없이 실행할 수 있는 스크립트 메모리가 충분한지 확인할 수 있습니다. 예를 들어, 스크립트를 사용하여 데이터 소스를 만들 때 테이블을 만드는 데 사용되는 스크립트가 테이블을 메모리로 로드할 수 있으므로 더 큰 런타임을 사용하는 것이 가장 좋습니다.

대규모 환경을 사용하면 어떤 위험이 있습니까?

컨테이너화된 대규모 환경은 많은 메모리를 소비할 수 있으며, 이로 인해 호스트 시스템의 성능 문제가 발생하고 컨테이너가 충돌할 수 있습니다. MicroStrategy컨테이너의 Python 런타임을 위한 메모리가 제한됩니다. 이는 현재 컨테이너화된 환경에서 6개의 vCPU 및 20GB의 메모리로 제한됩니다. 컨테이너 환경의 크기와 복잡성을 정기적으로 평가하고 성능, 보안 및 유지 관리 요구 사항에 맞는지 확인하는 것이 중요합니다. 리소스 사용량을 줄이려면 더 적은 런타임에서 관리 스크립트를 실행하는 것이 가장 좋습니다.

런타임 설정 조정

  1. 탐색 창에서 을(를) 클릭합니다. 모니터 .

  2. 왼쪽 창에서 을(를) 클릭합니다. 런타임 .

  3. 그리드에서 런타임을 마우스 오른쪽 버튼으로 클릭하고 선택합니다. 정보 얻기 .

  4. 왼쪽 창에서 을(를) 클릭합니다. 모든 설정 .

  5. 런타임 설정을 조정하십시오.

    스크립트 제한 시간(초) Python 스크립트 실행에 대한 시간 초과 설정입니다. 기본 설정은 600초입니다.

    기본 Pod 인스턴스 번호캐시된 Python 실행 인스턴스의 기본 수입니다.

    Python 실행 인스턴스 Python 스크립트가 Python 런타임을 기반으로 실행되는 경우 Python 실행 인스턴스가 생성되며 지침에 따라 캐시할 수 있습니다. 기본 Pod 인스턴스 번호최대 Pod 인스턴스 번호(총 실행 스크립트 제한)설정.

    최대 Pod 인스턴스 번호(총 실행 스크립트 제한)런타임을 기반으로 생성할 수 있는 최대 Python 실행 인스턴스 수입니다.

런타임 기본 Pod 인스턴스 번호 런타임 최대 Pod 인스턴스 번호(총 실행 스크립트 제한) 추천
1 1 사용량과 동시성이 낮고 응답 시간에 민감한 일반 사용자에게 적합합니다. Python 실행기 Pod가 항상 활성화되어 있으므로 Pod 준비 시간을 줄일 수 있지만 전체 비용이 더 높습니다. 항상 하나의 Pod가 켜져 있습니다.
1 N>1 사용량이 낮고 일부 동시성이 있지만 응답 시간에별로 민감하지 않은 일반 사용자용입니다. 하나의 Python 실행 Pod가 항상 활성화되며 요청 시 최대 N-1개의 Pod가 활성화될 수 있으므로 이 구성은 더 많은 동시 사례를 지원할 수 있습니다. 일부 사용자는 응답 시간이 좋습니다. 다른 경우에는 Pod 경고 시간이 발생할 수 있습니다. Pod 1개가 항상 활성화되어 있으며 특정 시간에 최대 N-1개의 Pod를 시작하여 2분 이상 유휴 상태로 전환한 후 중지할 수 있습니다.
X>0 = 기본 Pod 인스턴스 번호 응답 시간에 민감한 더 많은 동시 사용량을 지닌 심각한 사용자용 항상 X개의 런타임 Pod가 활성화되므로 가격이 더 높습니다.

알고 있는 제한 사항

실적

Python 원격 실행의 현재 논리는 다음과 같습니다.

  • 실행기 Pod가 생성되고 영구 볼륨이 Python 실행기의 컨테이너에 마운트될 때 특정 런타임에 대한 사용자 정의된 패키지 설치는 지속 볼륨에 있습니다.

  • Python 서비스의 기본 프로세스는 요청 및 응답 처리를 책임집니다. 실제 스크립트 실행은 하위 프로세스에 의해 실행됩니다. 결과적으로 Python 스크립트가 실행될 때마다 Python 해석기가 사용된 패키지를 하위 프로세스의 메모리에 로드하려고 합니다.

컨테이너가 지속 볼륨의 데이터를 가져올 때 여전히 약간의 지연이 있으므로 Pod가 이미 예열된 경우에도 하위 프로세스가 스크립트를 실행하는 데 약간의 추가 시간 비용이 있습니다.

데이터 소스 연결

전용 온-프레미스 데이터 소스의 경우 Python 실행기 Pod 컨테이너와 전용 데이터 소스가 네트워크로 연결되어 있지 않으면 Python 트랜잭션이 지원되지 않습니다. 일반적으로 공용 엔드포인트가 있는 데이터 소스를 사용할 수 있습니다.

관련 문서

KB486432: Python 트랜잭션 구성을 위한 Python 스크립트 변수 및 그리드 필드 매핑 모범 사례

KB486431: 대시보드에서 Python 스크립트 수정 사항을 Python 트랜잭션 구성과 동기화