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 데이터 테이블에 액세스하는 방법을 소개합니다.
전제 조건
데이터 액세스 경로
다음은 Azure Databricks 데이터베이스 테이블에 대한 SAS 9.4 환경 액세스를 설명합니다.
크게 보시려면 이미지를 클릭하시기 바랍니다. 모바일 버전: 이미지를 보시려면 페이지 하단의 풀 버전을 선택하세요.
Azure Databricks 작업 영역 설정
Azure Databricks에서 데이터 테이블에 액세스하려면 먼저 Azure Databricks 작업 영역이 이미 있거나 생성해야 합니다. Databricks 작업 영역은 외부 응용 프로그램이 Databricks의 개체 및 데이터에 액세스할 수 있는 진입점입니다. 타사 애플리케이션에서 SPARK 클러스터에 연결하려면 Databricks 작업 영역 자격 증명이 필요합니다.
다음 화면에서는 SPARK 클러스터에 액세스하기 위한 Azure Databricks Workspace 및 사용자 자격 증명을 설명합니다.
작업 영역의 Azure Databricks SPARK 클러스터
Databricks 작업 영역이 있다면 SPARK 클러스터를 만들어 Azure 스토리지에서 수집한 데이터를 처리할 수 있습니다. 다음은 Azure Databricks Workspace에서 SPARK 클러스터를 만드는 방법을 설명합니다.
Azure Databricks SPARK 클러스터 연결 정보는 클러스터 구성 탭에서 확인하실 수 있습니다.
Azure Databricks JDBC 드라이버
타사 응용 프로그램은 JDBC 드라이버를 사용하여 Databricks 테이블에 액세스할 수 있습니다. JDBC 드라이버 하단 링크를 통해 다운로드 하실 수 있습니다.
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')) |
외부 응용 프로그램에서 데이터에 액세스하려면 먼저 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) |
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;
..........
.................
결과 출력:
필독: What is Azure Databricks ?
이곳에서 SAS Global Enablement and Learning에서 더 많은 기사를 찾아보실 수 있습니다.
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.