O Babelfish comporta tipos de dados geoespaciais - Amazon Aurora

O Babelfish comporta tipos de dados geoespaciais

A partir das versões 3.5.0 e 4.1.0, o Babelfish inclui suporte para estes dois tipos de dados espaciais:

  • Tipo de dados de geometria: esse tipo de dados é destinado ao armazenamento de dados planares ou euclidianos (Terra plana).

  • Tipo de dados geográficos: esse tipo de dados é destinado ao armazenamento de dados elipsoidais (Terra redonda), como coordenadas de latitude e longitude do GPS.

Esses tipos de dados permitem o armazenamento e a manipulação de dados espaciais, mas com limitações.

Noções básicas sobre os tipos de dados geoespaciais no Babelfish

  • Os tipos de dados geoespaciais são aceitos em vários objetos de banco de dados, como visualizações, procedimentos e tabelas.

  • Comporta o tipo de dados de pontos 2D para armazenar dados de localização como pontos definidos por latitude, por longitude e por um identificador de sistema de referência espacial (SRID) válido.

  • Aplicações que se conectam ao Babelfish por meio de drivers, como JDBC, ODBC, DOTNET e PYTHON, podem utilizar esse recurso geoespacial.

Funções de tipo de dados de geometria aceitas no Babelfish

  • STGeomFromText (geometry_tagged_text, SRID): cria uma instância de geometria usando a representação de texto conhecido (WKT).

  • STPointFromText (point_tagged_text, SRID): cria uma instância de ponto usando a representação WKT.

  • Ponto (X, Y, SRID): cria uma instância de ponto usando valores flutuantes das coordenadas x e y.

  • <geometry_instance>.STAsText ( ): extrai a representação WKT da instância de geometria.

  • <geometry_instance>.STDistance (other_geometry): calcula a distância entre duas instâncias de geometria.

  • <geometry_instance>.STX: extrai a coordenada X (longitude) para a instância de geometria.

  • <geometry_instance>.STY: extrai a coordenada Y (latitude) para a instância de geometria.

Funções de tipo de dados de geografia aceitas no Babelfish

  • STGeomFromText (geography_tagged_text, SRID): cria uma instância de geografia usando a representação WKT.

  • STPointFromText (point_tagged_text, SRID): cria uma instância de ponto usando a representação WKT.

  • Ponto (Lat, Long, SRID): cria uma instância de ponto usando valores flutuantes de latitude e de longitude.

  • <geography_instance>.STAsText ( ): extrai a representação WKT da instância de geografia.

  • <geography_instance>.STDistance (other_geography): calcula a distância entre duas instâncias de geografia.

  • <geography_instance>.Lat: extrai o valor de latitude para a instância de geografia.

  • <geography_instance>.Long: extrai o valor de longitude para a instância de geografia.

Limitações no Babelfish para tipos de dados geoespaciais

  • No momento, o Babelfish não comporta recursos mais avançados, como sinalizadores Z-M, para instâncias de pontos de tipos de dados geoespaciais.

  • No momento, não há suporte para tipos de geometria diferentes de instâncias de pontos:

    • Linestring

    • CircularString

    • CompoundCurve

    • Polígono

    • CurvePolygon

    • MultiPoint

    • MultiLineString

    • MultiPolygon

    • GeometryCollection

  • No momento, a indexação espacial não comporta tipos de dados geoespaciais.

  • No momento, somente as funções listadas comportam esses tipos de dados. Para obter mais informações, consulte Funções de tipo de dados de geometria aceitas no Babelfish e Funções de tipo de dados de geografia aceitas no Babelfish.

  • A saída da função STDistance para dados de geografia pode ter pequenas variações de precisão em comparação com o T-SQL. Isso se deve à implementação subjacente do PostGIS. Para ter mais informações, consulte ST_Distance.

  • Para ter uma performance ideal, use tipos de dados geoespaciais integrados, sem criar camadas adicionais de abstração no Babelfish.

    dica

    Embora seja possível criar tipos de dados personalizados, não é recomendável criá-los com base em dados geoespaciais. Isso pode introduzir complexidades, podendo ocasionar um comportamento inesperado devido ao suporte limitado.

  • No Babelfish, os nomes das funções geoespaciais são usados como palavras-chave e realizarão operações espaciais somente se utilizados da maneira pretendida.

    dica

    Ao criar funções e procedimentos definidos pelo usuário no Babelfish, evite usar os mesmos nomes das funções geoespaciais integradas. Se você tiver objetos de banco de dados com os mesmos nomes, use sp_rename para renomeá-los.