2016-06-30 5 views
1

SAS 라이브러리/폴더가 실제 위치에 저장되는 방식을 이해하려고 노력해 왔습니다. 행정 수준에서 개념을 이해하려고합니다. SAS 라이브러리 저장 방법

내 혼란이 더 설명하기 위해, 내가 단계별로 가고 싶다 -

(1) SAS 코드는 클라이언트에서 실행됩니다. 모든 변수/라이브러리/데이터 세트는 메타 데이터 계층에 메타 데이터 계층에 실제 주소를 가리키는 논리 주소가 포함되어 있고 컴퓨팅 계층 및 Compute 계층에서 찾을 수있는 정의가 Linux 시스템에 있음을 의미합니다. 논리 주소와 실제 주소 간의 매핑을 어떻게 찾을 수 있습니까? 또는 SAS Management Console 또는 Linux에서 변수/라이브러리/데이터 세트를 어떻게 추적 할 수 있습니까?

(2) SAS 클라이언트 -> SAS 서버 -> 데이터베이스. 그래서 우리는 데이터베이스에서 어떤 테이블에 액세스 할 때 먼저 SAS 테이블로 변환됩니다. 이 논리에 대해 필자가 정확히 알고 있다면 SAS 테이블을 보관할 물리적 인 위치가 있어야합니다. Compute Tier에서 이러한 실제 위치를 찾으려면 어떻게해야합니까?

(3) 사용자로서 SAS 데이터 세트를 만들면 어떤 형식으로 저장되며 어디에 저장합니까? 그것은 리눅스에서 또는 일부 데이터베이스의 테이블로 플랫 파일로 저장됩니까?

(4)이 질문을 통해 가서 데이터 테이블이 SAS 서버에 데이터베이스 서버에서로드 할 때 한 번 더 혼란

Proc SQL: How/When does SAS Move the Data

를 제기되었다. 테이블이 호출 될 때마다 또는 전체 세션에서 거기에 상주합니까? 데이터베이스가 손상됩니다.

내가 SAS에 대한 이해가 잘못되었을 수 있으므로 가능하면 해결하십시오.

Q2 & 3에 대해서 감사

+0

이들은 아마 유효합니다 그래서 당신은 한 번에 너무 많은이를 제외하고 질문. SAS 직원 및 개발자가 있으며 여기에 관리자가 너무 많지 않으므로 communities.sas.com에서 자세한 정보를 요청하는 것이 좋습니다. – Reeza

답변

0

) 예와 아니오에 대한 데이터베이스 변환된다. 데이터베이스를 읽을 때 쿼리에 따라 SAS는 쿼리를 DB로 전달한 다음 결과를 SAS로 가져옵니다. 결과가 테이블 인 경우 사용자가 저장하도록 지정한 위치에 따라 달라집니다. Q3와의 연계를 위해 WORK 라이브러리로 이동한다고 가정합니다. 이것은 서버의 스크래치/임시 공간이지만 SAS 내부의 공간입니다. SAS 세션에 존재하며 세션이 닫히면 지워 집니 다. WORK 폴더의 데이터 세트는 독점 SAS 포맷 인 SAS7BDAT에 저장됩니다. 작업 라이브러리는 기본적으로 데이터베이스가 아닌 디렉터리의 폴더입니다.

어떤 이유로 데이터베이스에 쿼리를 전달할 수없는 경우 함수가 유효한 데이터베이스 함수가 ​​아니거나 작업 라이브러리의 SAS 데이터 집합과 조인되고있는 경우 서버의 전체 테이블이 먼저 SAS 세션을 실행 한 다음 쿼리가 실행됩니다. 이는 매우 효율적일 수 있으므로 사용자의 관심사에 따라 어떻게 작동하는지 이해해야합니다.

0

Q1 : 당신이 데이터 세트에 PROC 데이터 집합을 실행하면, 당신이 파일 이름 필드에 위치에 있습니다. SAS EG에서 DATA SET ATTRIBUTES 작업을 실행하면 동일하게 수행 할 수 있습니다.

질문 2 : Reeza가 언급했듯이 많은 쿼리는 DB 직접 처리 할 수 ​​있습니다. SAS는 중개 데이터 세트가 필요없는 SQL, Oracle 및 기타 여러 DB에 대한 탁월한 지원을 제공합니다.

Q3 : 당신이 당신의 세션에서 새로운 형식을 만들어 곳에 보관하는 지정하지 않으면, 그것이 SAS 카탈로그 등의 작업 라이브러리에 저장됩니다. 이 프로그램을 실행하여 해당 카탈로그의 내용을 검사 할 수 있습니다. PROC CATALOG CATALOG=WORK.FORMATS;contents;RUN; 일반적으로 기본 및 영구 형식은 다른 위치에 저장됩니다. 세션에로드 된 위치를 조사하려면 FMTSEARCH 옵션의 내용을 검색해야합니다. 이러한 위치는 왼쪽에서 오른쪽으로 필요한 형식으로 검색됩니다. 코드는 옵션을 검토하기 : PROC OPTIONS option=FMTSEARCH; RUN;

Q4 : 문제는 SQL 절차 통과 시설에 대해 정말이다. this technical document이 유용 할 수 있습니다. 다른 많은 유용한 논문이 있지만 한 문장으로 특정 질문에 대답하는 것입니다 : 그렇습니다. 데이터베이스는 언제나 타격을 입습니다. 이를 방지하려면 야간 ETL 프로세스를 만들고 낮 처리를 위해 SAS에 데이터베이스를 복사하십시오. 그러나 처리를 위해 데이터베이스에 잘 구성된 SQL 쿼리를 보내는 것이 더 효과적 일 수 있습니다 (SQL 통과 기능 활용).

감사합니다, 바실리

+0

감사합니다 Vasilij. 따라서 관리자로서 모든 라이브러리가 작업 폴더에 있는지 추적 할 수있는 권한이 관리자에게 부여됩니다. SAS의 폴더 형식은 무엇입니까? 사용자 (1) {폴더 A, 폴더 B, 작업}, 사용자 (2) {폴더 A, 폴더 B, 작업} 또는 폴더 A {사용자 (1), 사용자 (2)} 폴더 B {사용자 1), 사용자 (2)}, 작업 {{사용자 (1), 사용자 (2)}. – user2676132

+0

안녕하세요 @ user2676132 폴더는 OS 권한으로 관리되는 실제 실제 폴더입니다. 많은 경우 사용자는 해당 위치로 FTP를 보내고 폴더 구조를 볼 수 있습니다. 일반적으로/your_path_to_work_location/SAS_work {random_string} _hostname과 같습니다. 현재 작업 폴더의 실제 위치를보고 싶다면 다음 코드를 실행하여 전역 매크로 변수 SASWORKLOCATION을 쿼리하십시오 :'% PUT SASWORKLOCATION = & SASWORKLOCATION'; –