最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
MATLAB® では、datastore
オブジェクトを使用してリモート データにアクセスできます。データ ストアを作成し、Amazon S3™ (Simple Storage Service)、Windows Azure® BLOB ストレージ、および Hadoop® 分散ファイル システム (HDFS™ ) を使用したクラウド ストレージなどのリモートの場所に格納されているデータを操作することが可能です。データ ストアを使用して、MATLAB のデスクトップ バージョンからデータの一部を調べます。その後、コードをローカルでプロトタイプ化してから、クラスターまたはクラウドにスケール アップできます。データと同じ場所で大規模な計算を実行するほうが効率がよいため、スケール アップすると実行効率性が向上します。
MATLAB では、Amazon S3 をアマゾン ウェブ サービス提供のオンライン ファイル ストレージ ウェブ サービスとして使用できます。Amazon S3 に格納されているデータを使用して、ImageDatastore
、FileDatastore
または TabularTextDatastore
を作成できます。データの場所を指定する場合、次の形式の国際化リソース識別子 (IRI) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
s3://bucketname/path_to_file
bucketname
はコンテナーの名前、path_to_file
はファイルまたはフォルダーへのパスです。
Amazon S3 は、ウェブ サービス インターフェイス経由でデータ ストレージを提供します。"バケット" をコンテナーとして使用して、オブジェクトを Amazon S3 に格納できます。詳細については、Amazon S3 のご紹介を参照してください。
Amazon S3 データ ストアを使用するには、以下の手順に従います。
アマゾン ウェブ サービス (AWS) のルート アカウントの新規登録を行います。「アマゾン ウェブ サービス: アカウント」を参照してください。
AWS のルート アカウントを使用して、IAM (Identity and Access Management) ユーザーを作成します。「AWS アカウント内での IAM ユーザーの作成」を参照してください。
アクセス キーを生成して、アクセス キー ID とシークレット アクセス キーを受け取ります。「IAM ユーザーのアクセスキーの管理」を参照してください。
setenv
を使用して環境変数を設定します。
AWS_ACCESS_KEY_ID
および AWS_SECRET_ACCESS_KEY
— Amazon S3 サービスを認証して使用可能にします (このアクセス キー変数のペアは手順 3 で生成しました)。
AWS_REGION
— バケットの地理的領域を選択します。この変数は、使用中のプロファイルの既定の地域が設定されている場合、これをオーバーライドします。
たとえば、ImageDatastore
を作成して、指定したイメージをデータ ストアから読み取り、そのイメージを画面に表示します。
setenv('AWS_ACCESS_KEY_ID', 'YOUR_AWS_ACCESS_KEY_ID'); setenv('AWS_SECRET_ACCESS_KEY', 'YOUR_AWS_SECRET_ACCESS_KEY'); setenv('AWS_REGION', 'us-east-1'); ds = imageDatastore('s3://mw-s3-datastore-tests-us/image_datastore/jpegfiles', ... 'IncludeSubfolders', true, 'LabelSource', 'foldernames'); img = ds.readimage(1); imshow(img)
MATLAB では、Windows Azure BLOB ストレージ (WABS) を Microsoft 提供のオンライン ファイル ストレージ ウェブ サービスとして使用できます。Windows Azure に格納されているデータを使用して、ImageDatastore
、FileDatastore
または TabularTextDatastore
を作成できます。データの場所を指定する場合、次の形式の国際化リソース識別子 (IRI) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
wasbs://container@account/path_to_file/file.ext
container@account
はコンテナーの名前、path_to_file
はファイルまたはフォルダーへのパスです。
Windows Azure は、ウェブ サービス インターフェイス経由でデータ ストレージを提供します。"BLOB" をコンテナーとして使用して、オブジェクトを Windows Azure に格納できます。詳細については、Windows Azure のご紹介を参照してください。
Windows Azure データ ストアを使用するには、次の手順に従います。
Microsoft Azure アカウントの新規登録を行います。詳細については、Microsoft Azure アカウントを参照してください。
setenv
を使用して以下の 2 つの環境変数のうちのどちらか 1 つのみを設定し、認証の詳細をセットアップします。
MW_WASB_SAS_TOKEN
— 共有アクセス シグネチャ (SAS) による認証
SAS を取得します。詳細については、https://docs.microsoft.com/en-us/azure/vs-azure-tools-storage-explorer-blobsで "Get the SAS for a blob container" の節を参照してください。
MATLAB で MW_WASB_SAS_TOKEN
を 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=E12eH4cRCLilp3Tw%2BArdYYR8RruMW45WBXhWpMzSRCE%3D'
この文字列を、Azure Storage web UI またはエクスプローラーから生成された有効な SAS トークンに設定しなければなりません。
MW_WASB_SECRET_KEY
— アカウントの 2 つの秘密鍵の 1 つを使用した認証
各ストレージ アカウントには 2 つの秘密鍵があり、それを使用した管理者権限アクセスが可能です。環境変数 MW_WASB_SECRET_KEY
を設定することにより、SAS トークンを作成しなくても、これと同じアクセス権を MATLAB に付与できます。以下に例を示します。
setenv MW_WASB_SECRET_KEY '1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF'
Windows Azure Storage BLOB (WASB) の場所からデータ ストアを作成します。
ファイルの場所を作成するには、ファイル名 file.ext
で開始して、ファイル パス /path_to_file
とアカウント名 wasbs://container@account/
を前に追加します。完全なデータの場所には次の構文を使用します。
wasbs://container@account/path_to_file/file.ext
container@account
はコンテナーの名前、path_to_file
はファイルまたはフォルダーへのパスです。
たとえば、airlinesmall.csv
というファイルが /airline
というフォルダーの中にあり、このフォルダーがテスト ストレージ アカウント wasbs://blobContainer@storageAccount.blob.core.windows.net/
にある場合、次を使用してデータ ストアを作成できます。
location = 'wasbs://blobContainer@storageAccount.blob.core.windows.net/airline/airlinesmall.csv';
ds = tabularTextDatastore(location, 'TreatAsMissing', 'NA', ... 'SelectedVariableNames', {'ArrDelay'});
直接読み取り、 mapreduce
、tall 配列、深層学習など、datastore
でサポートされるすべての計算に Azure を使用できます。たとえば、ImageDatastore
を作成して、指定したイメージをデータ ストアから読み取り、そのイメージを画面に表示します。
setenv('MW_WASB_SAS_TOKEN', 'YOUR_WASB_SAS_TOKEN'); ds = imageDatastore('wasbs://YourContainer@YourAccount.blob.core.windows.net/', ... 'IncludeSubfolders', true, 'LabelSource', 'foldernames'); img = ds.readimage(1); imshow(img)
Parallel
Computing Toolbox™ を使用している場合は、EnvironmentVariables
を parpool、batch、createJob の中で設定するか、クラスター プロファイル マネージャーの中で設定することにより、クライアント環境変数をクラスター上のワーカーにコピーしなければなりません。
詳細については、https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-use-blob-storageを参照してください。
関数 datastore
を使用して、Hadoop 分散ファイル システム (HDFS) 上のテキスト ファイルまたはシーケンス ファイルのコレクションについてデータ ストアを作成することもできます。データの場所を指定する場合、次のいずれかの形式の国際化リソース識別子 (IRI) を使用してファイルまたはフォルダーへの絶対パスを指定しなければなりません。
hdfs:/path_to_file
hdfs:///path_to_file
hdfs://hostname/path_to_file
hostname
はホストまたはサーバーの名前、path_to_file
はファイルまたはフォルダーへのパスです。hostname
の指定はオプションです。hostname
を指定しない場合、Hadoop は MATLAB の Hadoop 分散ファイル システム (HDFS) インストールに関連付けられている既定のホスト名を使用します。
たとえば、これらのコマンドは両方とも myserver
というホストにある data
という名前のフォルダーのファイル file1.txt
に対するデータ ストアを作成します。
ds = datastore('hdfs:///data/file1.txt')
ds = datastore('hdfs://myserver/data/file1.txt')
hostname
を指定する場合は、Hadoop クラスターの Hadoop XML 構成ファイル内の fs.default.name
プロパティで定義された namenode に一致しなければなりません。
オプションで、ポート番号を含めることもできます。たとえば、この場所は、data
というフォルダーのファイル file1.txt
を含む、ポート 7867
の myserver
というホストを指定します。
'hdfs://myserver:7867/data/file1.txt'
指定されたポート番号は、HDFS 構成のポート番号セットに一致しなければなりません。
HDFS から読み取る前に、関数 setenv
を使用して、Hadoop がインストールされているフォルダーに適切な環境変数を設定します。このフォルダーは、現在のマシンからアクセス可能でなければなりません。
Hadoop v1 のみ — HADOOP_HOME
環境変数を設定します。
Hadoop v2 のみ — HADOOP_PREFIX
環境変数を設定します。
Hadoop v1 と Hadoop v2 の両方を操作する場合または HADOOP_HOME
環境変数と HADOOP_PREFIX
環境変数が設定されていない場合は、MATLAB_HADOOP_INSTALL
環境変数を設定します。
たとえば、このコマンドを使用して HADOOP_HOME
環境変数を設定します。hadoop-folder
は Hadoop がインストールされているフォルダー、/mypath/
はそのフォルダーへのパスです。
setenv('HADOOP_HOME','/mypath/hadoop-folder');
現在のマシンから Hortonworks または Cloudera® 上の HDFS データにアクセスできる場合、HADOOP_HOME
または HADOOP_PREFIX
の各環境変数を設定する必要はありません。Hortonworks または Cloudera アプリケーションのエッジ ノードを使用するとき、MATLAB はこれらの環境変数を自動的に割り当てます。
HDFS から読み取る場合やシーケンス ファイルをローカルに読み取る場合、関数 datastore
は javaaddpath
コマンドを呼び出します。このコマンドは以下を実行します。
動的クラス パス上のファイルによって定義されるすべての Java® クラスの定義をクリアする
すべてのグローバル変数および基本ワークスペースからの変数を削除する
すべてのコンパイルされているスクリプト、関数、MEX 関数をメモリから削除する
永続変数、コード ファイルまたは MEX ファイルがクリアされないようにするには、関数 mlock
を使用します。
datastore
| imageDatastore
| imread
| imshow
| javaaddpath
| mlock
| setenv