主要内容

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

원격데이터로작업하기

파일 输入输出함수와 일부 데이터저장소 객체와 같은 MATLAB®함수와 객체를 사용하여 원격 위치에서 데이터를 읽고 쓸 수 있습니다. 이 예제에서는 다음과 같은 클라우드 저장소 플랫폼에서 원격 위치를 설정하고 원격 위치의 데이터를 읽고 쓰는 방법을 보여줍니다.

  • 亚马逊S3™(简单存储服务)

  • 蔚蓝色的®水滴存储(이전에는 WindowsAzure®存储块(WASB)라고 함)

  • Hadoop®分布式文件系统(HDFS™)

Amazon S3

MATLAB에서는Amazon Web Services에서제공하는Amazon S3를온라인파일저장소웹서비스로사용할수있습니다。데이터의위치를지정할때는다음형식의URL(统一资源定位器)을사용하여파일이나폴더의전체경로를지정해야합니다。

s3://bucketname/path_到_文件

bucketname은컨테이너이름이고到文件的路径은파일이나폴더의경로입니다。

Amazon S3는 웹 서비스 인터페이스를 통해 데이터 저장소를 제공합니다.水桶을컨테이너로사용하여Amazon S3에객체를저장할수있습니다。

액세스설정하기

亚马逊S3의 원격 데이터로 작업하려면 먼저 액세스를 설정해야 합니다.

  1. AWS (Amazon Web Services)루트계정에가입합니다。亚马逊网络服务:계정을참조하십시오。

  2. AWS루트계정을사용하여我(身份和访问管理)사용자를만듭니다。在您的AWS帐户中创建IAM用户를 참조하십시오.

  3. 액세스키를생성하여액세스키ID와보안액세스키를받습니다。管理IAM用户的接入密钥를 참조하십시오.

  4. 自动气象站명령줄 인터페이스 툴(https://aws.amazon.com/cli/)을사용하여AWS액세스키ID,보안액세스키및리전(지역)으로컴퓨터를구성합니다。또는,环境变量를사용하여환경변수를직접설정합니다。

    • AWS\u访问\u密钥\u IDAWS\u密码\u访问\u密钥——Amazon S3서비스를인증하여사용할수있도록설정합니다。이액세스키변수쌍은위의3단계에서생성되었습니다。

    • AWS_DEFAULT_REGION(선택 사항) — 水桶의 지리적 영역을 선택합니다. 이 환경 변수의 값은 일반적으로 자동으로 결정되지만, 이 값을 사용자가 수동으로 설정하도록 水桶소유자에 의해 요구될 수도 있습니다.

    • AWS_会话_令牌(선택사항)- AWS®联合身份验证같은임시보안자격증명을사용하는경우세션토큰을지정합니다。

并行计算工具箱™를사용중인경우에는클러스터S3가서비스에액세스하도록구성되어있는지확인해야합니다。parpool批处理createJob또는클러스터프로파일관리자(集群配置文件管理器)에서EnvironmentVariables를 설정하여 클라이언트 환경 변수를 클러스터의 워커에 복사할 수 있습니다.

Amazon S3에서 데이터 읽어오기

다음 예제는ImageDatastore객체를 사용하여 亚马逊S3에서 특정 이미지를 읽어온 다음 화면에 표시하는 방법을 보여줍니다.

setenv(“AWS_ACCESS_KEY_ID”、“YOUR_AWS_ACCESS_KEY_ID”);setenv(“AWS_SECRET_ACCESS_KEY”、“YOUR_AWS_SECRET_ACCESS_KEY”);ds = imageDatastore('s3://bucketname/image_datastore/jpegfiles',…' inclesubfolders ', true, 'LabelSource', 'foldernames');img = ds.readimage (1);imshow (img)

Amazon S3에 데이터 쓰기

다음예에서는表格数据存储객체를 사용하여 亚马逊S3에서 테이블 형식 데이터를 高的형 배열로 읽어오고, 누락된 항목을 제거하고 정렬하여 데이터를 전처리한 다음, 亚马逊S3에 다시 쓰는 방법을 보여줍니다.

setenv('AWS_-ACCESS_-KEY_-ID','YOUR_-AWS_-ACCESS_-KEY_-ID');setenv('AWS_-SECRET_-KEY','YOUR_-AWS_-SECRET_-ACCESS_-KEY_-ID');ds=tablertextdatastore('s3://bucketname/dataset/airlinesmall.csv','TreatAsMissing','NA','SelectedVariableNames',{'ArrDelay'});tt=tall(ds);tt=sortrows(rmmissing(rmmissing)(rmmissing(tt));write('s3://bucketname;

高형데이터를다시읽어오려면数据存储함수를사용하십시오。

ds =数据存储(s3: / / bucketname / preprocessedData / ');tt =高(ds);

蔚蓝色的水滴存储

MATLAB에서는 Azure Blob存储를 온라인 파일 저장소로 사용할 수 있습니다. 데이터의 위치를 지정할 때는 다음 형식의 URL(统一资源定位器)을 사용하여 파일이나 폴더의 전체 경로를 지정해야 합니다.

wasbs: / / container@account / path_to_file / file.ext

container@account는컨테이너이름이고到文件的路径은파일이나폴더의경로입니다。

蔚蓝色的는 웹 서비스 인터페이스를 통해 데이터 저장소를 제공합니다.斑点을사용하여Azure에데이터파일을저장할수있습니다。자세한내용은介绍蔚蓝色的를 참조하십시오.

액세스설정하기

Azure存储의 원격 데이터로 작업하려면 먼저 액세스를 설정해야 합니다.

  1. 微软Azure계정에 가입합니다(微软Azure帐户참조).

  2. 环境变量로다음두환경변수중하나를정확하게설정하여인증세부정보를설정합니다。

    • MW_WASB_SAS_代币— 공유 액세스 서명(SAS)을 통해 인증

      SAS를 가져옵니다. 자세한 내용은使用存储资源管理器管理Azure Blob存储资源의”得到一个blob容器”的SAS섹션을참조하십시오。

      MATLAB에서MW_WASB_SAS_代币을 SAS쿼리 문자열로 설정합니다. 예를 들면, 다음과 같습니다.

      setenv MW_WASB_SAS_TOKEN'?st=2017-04-11T09%3A45%3A00Z&se=2017-05-12T09%3A45%3A00Z&sp=rl&sv=2015-12-11&sr=c&sig=E12EH4CRCLLP3TW%2BArdYYR8RruMW45WBXhWpMzSRCE%3D'

      이문자열은Azure存储웹UI또는탐색기에서생성된유효한SAS토큰으로설정해야합니다。

    • MW_WASB_SECRET_KEY——계정의비밀키2개중하나를통해인증

      각 저장소 계정에는 관리자 권한 액세스를 허용하는 2.개의 비밀 키가 있습니다.MW_WASB_SECRET_KEY환경 변수를 설정하면 SAS토큰을 만들지 않아도 MATLAB에 동일한 액세스가 부여됩니다. 예를 들면, 다음과 같습니다.

      setenv MW_WASB_SECRET_KEY“1234567890 abcdef1234567890abcdef1234567890abcdef”

并行计算工具箱를사용중인경우parpool批处理createJob또는클러스터프로파일관리자(集群配置文件管理器)에서EnvironmentVariables를 설정하여 클라이언트 환경 변수를 클러스터의 워커에 복사해야 합니다.

자세한내용은在Azure HDInsight集群中使用Azure存储를 참조하십시오.

蔚蓝色的에서 데이터 읽어오기

Azure Blob存储위치에서 데이터를 읽어오려면 다음 구문을 사용하여 위치를 지정하십시오.

wasbs: / / container@account / path_to_file / file.ext

container@account는컨테이너이름이고到文件的路径은파일이나폴더의경로입니다。

예를들어,테스트저장소계정wasbs://blobContainer@storageAccount.blob.core.windows.net/의폴더/航空公司에파일airlinesmall.csv가 있으면 다음 구문을 사용하여 데이터저장소를 만들 수 있습니다.

地点:wasbs://blobContainer@storageAccount.blob.core.windows.net/airline/airlinesmall.csv';
ds = tabularTextDatastore(location, 'TreatAsMissing', 'NA',…)SelectedVariableNames, {' ArrDelay '});

직접 읽기,地图还原高的형 배열, 딥러닝을 비롯해 데이터저장소가 지원하는 모든 계산에 蔚蓝色的를 사용할 수 있습니다. 예를 들어,ImageDatastore객체를 만들고 데이터저장소에서 지정된 이미지를 읽어온 후 화면에 표시합니다.

setenv(“MW_WASB_SAS_TOKEN”、“YOUR_WASB_SAS_TOKEN”);ds = imageDatastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/',…' inclesubfolders ', true, 'LabelSource', 'foldernames');img = ds.readimage (1);imshow (img)

蔚蓝色的에 데이터 쓰기

이예제에서는表格数据存储객체를사용하여Azure에서테이블형식데이터를高형배열로읽어오고,누락된항목을제거하고정렬하여데이터를전처리한다음,Azure에다시쓰는방법을보여줍니다。

setenv('MW_WASB_SAS_TOKEN'、'YOUR_WASB_SAS_TOKEN');ds=TablerTextDatastore('wasbs://YourContainer@yourcount.blob.core.windows.net/dataset/airlinesmall.csv',…'TreatAsMissing','NA','SelectedVariableNames',{'ArrDelay'});tt=高(ds);tt=sortrows(rmmissing(tt));写('wasbs://YourContainer@yourcount.blob.core.windows.net/preprocessedData/',tt);

高형데이터를다시읽어오려면数据存储함수를사용하십시오。

ds=数据存储('wasbs://YourContainer@yourcount.blob.core.windows.net/preprocessedData/');tt=tall(ds);

Hadoop分布式文件系统

데이터의위치지정하기

MATLAB에서는 Hadoop分布式文件系统(HDFS)을 온라인 파일 저장소 웹 서비스로 사용할 수 있습니다. 데이터의 위치를 지정할 때는 다음 형식 중 하나로 된 URL(统一资源定位器)을 사용하여 파일이나 폴더의 전체 경로를 지정해야 합니다.

hdfs:\u到\u文件的路径
hdfs:///path_to_file
hdfs: / /主机名/ path_to_file

主机名은 호스트 또는 서버 이름이고到文件的路径은파일이나폴더의경로입니다。主机名을 지정하는 것은 선택 사항입니다.主机名을지정하지않으면Hadoop에서는MATLAB의HDFS (Hadoop分布式文件系统)설치위치와연관된디폴트호스트이름을사용합니다。

예를 들어, 다음 두 명령 중 하나를 사용하여myserver라는호스트에있는数据폴더에file1.txt파일을 위한 데이터저장소를 만들 수 있습니다.

  • ds = tabularTextDatastore (“hdfs: / / /数据/中”
  • ds = tabularTextDatastore (hdfs: / / myserver /数据/中

主机名Hadoop클을지정할경우러스터의Hadoop XML구성파일에있는fs.default.name속성으로정의된namenode와일치해야합니다。

선택사항으로포트번호를입력할수있습니다。예를들어,다음위치는数据라는폴더에파일file1.txt가 있는 호스트myserver를 포트7867로지정합니다。

'hdfs://myserver:7867/data/file1.txt'

지정된 포트 번호는 HDFS구성에 설정된 포트 번호와 일치해야 합니다.

Hadoop환경 변수 설정하기

HDFS에서읽어오기전에,먼저环境变量함수를사용하여적절한환경변수를Hadoop이설치된폴더로설정합니다。이폴더는현재컴퓨터에서액세스할수있어야합니다。

  • Hadoop v1전용-HADOOP_HOME환경변수를설정합니다。

  • Hadoop v2전용 —HADOOP_前缀환경변수를설정합니다。

  • Hadoop v1과 Hadoop v2를 모두 사용하거나HADOOP_HOME환경변수와HADOOP_前缀환경변수가설정되지않은경우에는MATLAB_HADOOP_INSTALL환경변수를설정합니다。

예를 들어, 다음 명령을 사용하여HADOOP_HOME환경변수를설정합니다。여기서hadoop-folder는 Hadoop이 설치된 폴더이고/ mypath /는 해당 폴더의 경로입니다.

setenv (' HADOOP_HOME ', ' / mypath / hadoop-folder ');

Hortonworks또는Cloudera에있는HDFS데이터

현재 컴퓨터가 钟表厂또는 克劳德拉®에 있는 HDFS데이터에 액세스할 수 있다면,HADOOP_HOME환경변수또는HADOOP_前缀환경변수를설정하지않아도됩니다。MATLAB은Hortonworks또는Cloudera응용프로그램경계노드를사용할경우에이러한환경변수를자동으로할당합니다。

메모리에서코드가지워지지않도록방지하기

HDFS에서읽거나시퀀스파일을로컬로읽어들일때数据存储함수는javaaddpath명령을 호출합니다. 이 명령은 다음 작업을 수행합니다.

  • 동적클래스경로에있는파일에의해정의된모든Java®클래스의 정의 지우기

  • 모든전역변수와기본작업공간의변수제거

  • 메모리에서모든컴파일된스크립트,함수,墨西哥人함수제거

영속변수,코드파일,墨西哥人파일이지워지지않도록하려면姆洛克함수를사용하십시오。

HDFS에 데이터 쓰기

이예제에서는表格数据存储객체를 사용하여 데이터를 HDFS위치에 쓰는 방법을 보여줍니다.함수를 사용하여 高的형 배열과 분산 배열을 Hadoop分布式文件系统에 씁니다. 분산 배열이나 高的형 배열에 대해 이 함수를 호출할 경우에는 HDFS폴더의 전체 경로를 지정해야 합니다. 다음 예제에서는 HDFS에서 테이블 형식 데이터를 高的형 배열로 읽어오고, 누락된 항목을 제거하고 정렬하여 데이터를 전처리한 다음, HDFS에 다시 쓰는 방법을 보여줍니다.

ds = tabularTextDatastore('hdfs://myserver/some/path/dataset/ airlinessmall .csv',…'TreatAsMissing', 'NA', 'SelectedVariableNames', {'ArrDelay'});tt =高(ds);tt = sortrows (rmmissing (tt));写(“hdfs: / / myserver /一些/道路/ preprocessedData / ', tt);

高형데이터를다시읽어오려면数据存储함수를사용하십시오。

ds =数据存储(hdfs: / / myserver /一些/道路/ preprocessedData / ');tt =高(ds);

참고항목

||||||||

관련 항목