🔍
sqlcmdで、Azure Data Lake Storageを利用する(匿名アクセスを利用)
はじめに
前回、ストレージ上のファイルに直接クエリできるAzure Data Lake Storageを紹介しました。
今回はこのサービスに対して、sqlcmdでアクセスしてみました。
概要
- データが格納されているストレージへの認可は、匿名アクセスを使います
- Cloud Shellのsqlcmdからアクセスします
- Azure Data Lake Storageを検索するためのAzure Synapse Analyticsのエンドポイントにアクセスします
参考
やったこと
環境
前回作成した環境を使います。
ストレージに対して、匿名アクセスの許可
以下を参考に、作成したストレージアカウントに対して、匿名アクセスを許可します。
対象のアカウントの匿名アクセスを許可して保存します。
また、対象のコンテナの読み取りアクセスを有効にします。
Cloud Shellからsqlcmdでクエリ
Cloud Shellを起動して、Synapse ワークスペースのエンドポイントに対して、sqlcmdで接続します。サーバレスSQLエンドポイントを使います。以下の場所に記載されています。
使用するDBのユーザーは、環境構築時に作成されるSQL管理ユーザーsqladminuser
を使用しています。
# パスワード確認がでます。
sqlcmd -S <サーバーレス SQL エンドポイント> -d master -U sqladminuser
以下のSQLを実行します。
SELECT count(*) FROM OPENROWSET( BULK '<コンテナーのURL>/corona-tokyo/2022/130001_tokyo_covid19_patients_2022.csv', FORMAT='CSV', PARSER_VERSION='2.0') AS [result];
go
クエリが返ってきました。
おわりに
今回はAzure Data Lake StorageをSQLServerにアクセスするように、sqlcmdで実行してみました。
匿名アクセスですと、セキュリティ的に望ましくないので、別途他の方法も試してみようと思います。
この記事がどなたかのお役に立てれば幸いです。
Discussion