ArcGIS では様々な GIS データや DBMS をサポートしています。ArcGIS で使用する際には変換が必要なものも存在しますが、多くのデータは直接表示や解析を行うことができます。ファイルベースのデータはArcGIS Proのカタログ ウィンドウから直接アクセスすることで使用できますが、データベースに格納されているデータはデータベースに接続してクエリ レイヤーとして使用します。
ここではクエリ レイヤーを使用するための前提となる情報と、クエリ レイヤーと実際に使用する方法について2 回にわたってご紹介します。
1 回目となるこの記事ではジオデータベースとデータベースの違いなど前提となる情報についてご紹介します。
ジオデータベースは Esriが GIS データを格納するために考案した ArcGIS の標準データフォーマットです。ArcGIS をご利用のほとんどの方はファイル ジオデータベースを使用されていると思いますが、ジオデータベース名のフォルダ下の複数のファイルから構成されているものがファイル ジオデータベースとなり、データベース上に実装したものがエンタープライズ ジオデータベースとなります。
エンタープライズ ジオデータベースは [エンタープライズジオデータベースの作成] ジオプロセッシングツール等を使用して PostgreSQL 等のデータベースにジオデータベースを作成し、データベース コネクションを介して接続します。
一方でRDBMS に直接接続する場合もエンタープライズ ジオデータベースと同様にデータベース コネクションを介して接続することができます。
下記は ArcGIS Pro から新規にデータベースコネクションを作成する画面ですが、このように ArcGIS からのジオデータベースとデータベースには同じ操作で接続することができます。
同じように接続できるエンタープライズ ジオデータベースとデータベースの違いは、[エンタープライズジオデータベースの作成] ジオプロセッシングツールにあります。このツールではデータベースをジオデータベースとして使用できるようにするための設定(管理テーブル、ストアドプロシージャ等の作成)を行います。ArcGIS はデータベースに接続したときに、ジオデータベースの設定の有無をチェックして設定が行われていれば接続先のデータベースをジオデータベースとして認識します。
ArcGIS Pro ではデータベース コネクションを右クリックして [プロパティ] をクリックすることで [データベース プロパティ] ダイアログが表示され、[一般] の [タイプ] で接続しているデータベースが種類を確認することができます。ジオデータベースの場合は接続している RDBMS 名に続いて「エンタープライズ ジオデータベース」と表示されます。
ジオデータベース テーブルとテーブル
前のセクションではジオデータベースとデータベースの違いについて簡単に説明しました。ここからはジオデータベース テーブル(フィーチャクラス)とデータベースのテーブルについて説明します。
まず、データベースのテーブルは DDL を実行して作成されたデータベースのテーブルです。空間列(SQL Server の geometry 型や geography 型の列)を含むテーブルをレイヤーや空間テーブルと呼ぶ場合があります。
一方でジオデータベースのテーブルは ArcGIS 製品を使用して作成されたテーブルです。[フィーチャクラスの作成] ジオプロセシング ツール等を使用して作成した、空間情報(空間列)を持つテーブルは ArcGIS ではフィーチャクラスとなります。
データベースのテーブルとジオデータベースのテーブル(フィーチャクラス)は、ジオデータベースにそのテーブルの設定情報が格納されているかどうかで区別されます。これらの区別は設定の有無、もしくは概念的なもののため下記のArcGIS ProでPostgreSQLデータベース(geodb)に接続したカタログウィンドのように、同じデータベースユーザー(gisuser)に、ジオデータベースのフィーチャクラス(japan、japan_1)とデータベースのテーブルと空間テーブル(それぞれsampledata、munipt)が存在する状態もあります。
エンタープライズ ジオデータベースではないデータベースのテーブルはデータベーステーブルです。ジオデータベースのテーブルは ArcGIS を使用して作成された場合は、ArcGIS が自動的にジオデータベースに設定情報を登録するためジオデータベース テーブルとなります。ジオデータベースとして使用しているデータベースに DBMS の SQL クライアントでログインして DDL を実行して作成されたテーブルは、ジオデータベースに設定情報が登録されていないためデータベースのテーブルとなります。
作成方法 | ArcGIS を使用して作成 | SQL を使用して作成 |
名称(空間列なし) | ジオデータベース テーブル | データベース テーブル |
名称(空間列あり) | フィーチャクラス | レイヤー/空間テーブル |
これらの違いについては下記のヘルプをご参照ください。
ジオデータベースに登録されていないテーブルで使用できる ArcGIS の機能
まとめ
本記事ではクエリ レイヤーを使用する前に、フィーチャクラスや空間テーブルの概要を説明しました。次回の記事ではクエリ レイヤーがどういうものであるのか、どのように使用するのかをご説明します。
参考情報