すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for HBase:データのインポート

最終更新日:Jun 11, 2026

GeoTools API を使用して時空間データを HBase Ganos にインポートします。SimpleFeature を構築し、Geometry オブジェクトをアタッチして、単一レコードまたは一括挿入としてストアに書き込みます。

SimpleFeature の構築

HBase Ganos は、各空間フィーチャーを SimpleFeature として表現します。これは、ID、Geometry オブジェクト、および型付きプロパティを保持するオブジェクトです。GeoTools API の SimpleFeatureBuilder を使用して構築します。

SimpleFeatureType sft = ....;
SimpleFeatureBuilder builder = new SimpleFeatureBuilder(sft);
builder.set("property_name", propertyValue);
 ...
builder.set("geom", Geometry);
SimpleFeature feature = builder.buildFeature(object_id + "_" + date.getTime());
            
説明

デフォルトでは、Ganos はフィーチャー ID として 128 ビットの汎用一意識別子 (UUID) を生成します。代わりにカスタム ID を使用してストレージ領域を節約するには、書き込み前に USE_PROVIDED_FID ヒントを設定してください。

SimpleFeature feature = ...
feature.getUserData().put(Hints.USE_PROVIDED_FID, java.lang.Boolean.TRUE); 

Geometry オブジェクトの作成

SimpleFeature は、空間的な位置または形状を記述する 1 つの Geometry オブジェクトを保持します。Geometry 空間エンティティオブジェクトの完全な仕様については、「Geometry」をご参照ください。

GeoTools API の GeometryFactory を使用して Geometry オブジェクトを作成します。各ジオメトリタイプには、Coordinate オブジェクトから作成する方法と、Well-known Text (WKT) から作成する方法の 2 つの構築方法があります。WKT は、ベクタージオメトリ、空間参照系、および座標変換を表現するためのテキストマークアップ言語です。

  • ポイントフィーチャー

    • Coordinate オブジェクトから作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
      Coordinate coord = new Coordinate(1, 1);
      Point point = geometryFactory.createPoint(coord);            
    • WKT から作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
      WKTReader reader = new WKTReader(geometryFactory);
      Point point = (Point) reader.read("POINT (1 1)");
  • ラインフィーチャー

    • Coordinate オブジェクトから作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
      Coordinate[] coords =
          new Coordinate[] {new Coordinate(0, 2), new Coordinate(2, 0), new Coordinate(8, 6)};
      LineString line = geometryFactory.createLineString(coords);
    • WKT から作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
      WKTReader reader = new WKTReader(geometryFactory);
      LineString line = (LineString) reader.read("LINESTRING(0 2, 2 0, 8 6)");
  • ポリゴンフィーチャー

    • Coordinate オブジェクトから作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
      Coordinate[] coords =
          new Coordinate[] {new Coordinate(4, 0), new Coordinate(2, 2),
                            new Coordinate(4, 4), new Coordinate(6, 2), new Coordinate(4, 0)};
      LinearRing ring = geometryFactory.createLinearRing(coords);
      LinearRing[] holes = null; // ホールの表現には LinearRing[] を使用します
      Polygon polygon = geometryFactory.createPolygon(ring, holes);        
    • WKT から作成する場合:

      GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);
      WKTReader reader = new WKTReader(geometryFactory);
      Polygon polygon = (Polygon) reader.read("POLYGON((20 10, 30 0, 40 10, 30 20, 20 10))");            

ストアへのフィーチャーの書き込み

HBase Ganos は、GeoTools API の SimpleFeatureWriter を介してフィーチャーを書き込みます。SimpleFeatureWriter はトランザクションをサポートしており、getFeatureWriterAppend メソッドを DataStore で呼び出すことでライターを取得します。

  • 単一の SimpleFeature を挿入する場合:

    SimpleFeatureType sft = ....;
    SimpleFeatureWriter writer = (SimpleFeatureWriter) ds.getFeatureWriterAppend(sft.getTypeName(), Transaction.AUTO_COMMIT);
    SimpleFeature toWrite = writer.next();
    toWrite.setAttributes(feature.getAttributes());
    toWrite.getUserData().putAll(feature.getUserData());
    writer.write();
    writer.close();
  • SimpleFeatureStore を使用して SimpleFeature を一括挿入する場合:

    List<SimpleFeature> features = ...
    SimpleFeatureStore featureStore = (SimpleFeatureStore) ds.getFeatureSource(sft.getTypeName());
    List<FeatureId> featureIds = featureStore.addFeatures(new ListFeatureCollection(sft, features));