BookmarkSubscribeRSS Feed

SAS 9.4에서 Azure Databricks 액세스

Started ‎04-13-2022 by
Modified ‎04-13-2022 by
Views 571

Azure Databricks는 데이터 분석 사용자를 위해 Databricks와 Microsoft가 공동으로 개발한 데이터 및 AI 서비스입니다. Azure Databricks는 Azure 데이터 레이크에 최적화되어 있으며 환경을 설정하고 데이터 사이언티스트 간 협업이 가능한 대화형 작업 영역을 제공합니다. Azure Databricks는 SPARK 엔진을 사용하여 데이터를 처리합니다. Azure Databricks란 무엇입니까?

 

SAS 9.4 사용자는 JDBC 드라이버를 사용하여 Azure Databricks 작업 영역 및 데이터 테이블에 액세스할 수 있습니다. 현재 Databricks 데이터베이스에 대한 전용 SAS/ACCESS 인터페이스는 존재하지 않습니다. Databricks를 위한 새로운 SAS/ACCESS 엔진은 8월 혹은 9월에 출시 예정입니다. 출시 전까지는 SAS/ACCESS to JDBC 인터페이스를 사용하여 Azure Databricks 데이터 테이블에 액세스할 수 있습니다. JDBC 액세스 엔진을 사용하여 Azure Databricks에서 데이터를 읽을 수만 있습니다. 이 포스팅은 SAS 9.4 환경에서 Azure Databricks 데이터 테이블에 액세스하는 방법을 소개합니다.

 

전제 조건

  • SAS Compute 서버에서 JDBC에 대한 SAS/ACCESS 인터페이스
  • SAS Compute 서버에서 사용 가능한 JDBC Jar 파일
  • Azure Databricks Workspace의 액세스 토큰
  • SPARK 클러스터 JDBC URL 정보
  • 스토리지 계정 ADLS2에 액세스하도록 구성된 SPARK 클러스터
  • SPARK 데이터 프레임을 테이블로 저장하여 SAS 애플리케이션과 공유

 

데이터 액세스 경로

다음은 Azure Databricks 데이터베이스 테이블에 대한 SAS 9.4 환경 액세스를 설명합니다.

Daun_0-1649825548409.png

크게 보시려면 이미지를 클릭하시기 바랍니다. 모바일 버전: 이미지를 보시려면 페이지 하단의 풀 버전을 선택하세요.

 

Azure Databricks 작업 영역 설정

Azure Databricks에서 데이터 테이블에 액세스하려면 먼저 Azure Databricks 작업 영역이 이미 있거나 생성해야 합니다. Databricks 작업 영역은 외부 응용 프로그램이 Databricks의 개체 및 데이터에 액세스할 수 있는 진입점입니다. 타사 애플리케이션에서 SPARK 클러스터에 연결하려면 Databricks 작업 영역 자격 증명이 필요합니다.

 

다음 화면에서는 SPARK 클러스터에 액세스하기 위한 Azure Databricks Workspace 및 사용자 자격 증명을 설명합니다.

 

Daun_1-1649825589189.pngDaun_2-1649825638653.png

 

작업 영역의 Azure Databricks SPARK 클러스터

Databricks 작업 영역이 있다면 SPARK 클러스터를 만들어 Azure 스토리지에서 수집한 데이터를 처리할 수 있습니다. 다음은 Azure Databricks Workspace에서 SPARK 클러스터를 만드는 방법을 설명합니다.

Daun_3-1649825667741.png

Azure Databricks SPARK 클러스터 연결 정보는 클러스터 구성 탭에서 확인하실 수 있습니다.

 

Daun_4-1649825689935.png

 

Azure Databricks JDBC 드라이버

타사 응용 프로그램은 JDBC 드라이버를 사용하여 Databricks 테이블에 액세스할 수 있습니다. JDBC 드라이버 하단 링크를 통해 다운로드 하실 수 있습니다.

Databricks JDBC Driver 다운로드  

 

Azure Databricks SPARK 클러스터로 데이터 수집

Azure Databricks 작업 영역에 SPARK 클러스터가 있다면 ADLS2 스토리지 또는 Databricks 파일 시스템 파일에서 SPARK 클러스터로 데이터를 수집할 있습니다. Databricks 작업 영역에는 SPARK 클러스터와 상호 작용하기 위해 Python 코드를 실행하는 Notebook 편집기가 있습니다. 다음 Python 명령은 JSON 파일의 데이터를 SAPRK 클러스터로 수집하고 SPARK 데이터 프레임의 데이터를 표시합니다.

 

파이썬 코드:

#Read a sample data file (iot_devices.json) from Databricks DBFS location.

df = spark.read.json("dbfs:/databricks-datasets/iot/iot_devices.json")

 

#Create temporary view on Spark Data Frame "DF"

df.createOrReplaceTempView('source')

 

#Display top 10 ros from the source file.

print('Displaying top 10 rows: ')

display(spark.sql('SELECT * FROM source LIMIT 10'))

 

Daun_5-1649825753494.png

외부 응용 프로그램에서 데이터에 액세스하려면 먼저 SPARK 데이터 프레임을 Databricks 테이블로 작성해야 합니다. Python 명령 및 스크린샷은 Databricks 테이블에 기록되어 외부 응용 프로그램에 사용할 수 있는 데이터를 설명합니다.

 

파이썬 코드:

 #Write a parmanent table to share with other users and application.

permanent_table_name = "iot_device"df.write.format("parquet").

saveAsTable(permanent_table_name)

 

 

Daun_6-1649826225542.png

 

SAS 9.4에서 Azure Databricks 테이블에 액세스

Azure Databricks Workspace, SPARK 클러스터, 데이터베이스 테이블 및 JDBC 드라이버가 있는 경우 다음 코드를 사용하여 Azure Databricks 테이블에서 데이터를 읽을 수 있습니다. Azure Databricks Workspace 토큰()은 환경에 인증하기 위한 암호로 사용됩니다.

 

암호:

options sastrace=',,,d' sastraceloc=saslog ; 

 

/* Note : variable value in quotes generate errors, So keep it without quotes.

*/%let MYDBRICKS=adb-7060859955656306.6.azuredatabricks.net;

%let MYPWD=dapiaa66843abadb51775a9dd7858d6980aa-2;

%let MYHTTPPATH=sql/protocolv1/o/7060859955656306/0210-155120-shop163;

%let MYUID=token;  

 

libname dbricks jdbc driverclass="com.simba.spark.jdbc.Driver"           url="jdbc:spark://&MYDBRICKS:443/default;transportMode=http;ssl=1;httpPath=&MYHTTPPATH;AuthMech=3;UID=&MYUID;PWD=&MYPWD"  classpath="/mnt/myazurevol/config/access-clients/JDBC/"  schema="default" ; 

 

Proc SQL outobs=20;;

select * from dbricks.iot_device ;

run;

quit;

 

로그 추출:

.....

..............

78

79   options sastrace=',,,d' sastraceloc=saslog ;

80

81   /* Note : variable value in quotes generate errors, So keep it without quotes. */

82   %let MYDBRICKS=adb-7060859955656306.6.azuredatabricks.net;

83   %let MYPWD=dapiaa66843abadb51775a9dd7858d6980aa-2;

84   %let MYHTTPPATH=sql/protocolv1/o/7060859955656306/0210-155120-shop163;

85

86   %let MYUID=token;

87

88

89   libname dbricks jdbc driverclass="com.simba.spark.jdbc.Driver"

90      url="jdbc:spark://&MYDBRICKS:443/default;transportMode=http;ssl=1;httpPath=&MYHTTPPATH;AuthMech=3;UID=&MYUID;PWD=&MYPWD"

91          classpath="/mnt/myazurevol/config/access-clients/JDBC/"

92              schema="default" ;

NOTE: Libref DBRICKS was successfully assigned as follows:

      Engine:        JDBC

      Physical Name:

      jdbc:spark://adb-7060859955656306.6.azuredatabricks.net:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/7060859

      955656306/0210-155120-shop163;AuthMech=3;UID=token;PWD=dapiaa66843abadb51775a9dd7858d6980aa-2

93

94

95

96   Proc SQL outobs=20;

96 !                    ;

97   select * from dbricks.iot_device ;

  24 1612975267 no_name 0 SQL

JDBC_1: Prepared: on connection 0 25 1612975267 no_name 0 SQL

SELECT * FROM default.IOT_DEVICE WHERE 0=1 26 1612975267 no_name 0 SQL

  27 1612975267 no_name 0 SQL

  28 1612975267 no_name 0 SQL

JDBC_2: Executed: on connection 0 29 1612975267 no_name 0 SQL

SELECT * FROM default.IOT_DEVICE 30 1612975267 no_name 0 SQL

  31 1612975267 no_name 0 SQL

WARNING: Statement terminated early due to OUTOBS=20 option.

98   run;

NOTE: PROC SQL statements are executed immediately; The RUN statement has no effect.

99   quit;

..........

.................

결과 출력:

Daun_7-1649826321451.png

필독: What is Azure Databricks ?    

 

 

이곳에서 SAS Global Enablement and Learning에서 더 많은 기사를 찾아보실 수 있습니다.

Version history
Last update:
‎04-13-2022 01:08 AM
Updated by:
Contributors

sas-innovate-white.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Early bird rate extended! Save $200 when you sign up by March 31.

Register now!

Article Labels
Article Tags