我使用Trino来使用MariaDB表中的数据。
在这个表中,我有一个带有地理数据(Point,https://mariadb.com/kb/en/geometry-types/)的详细列。查询源时,数据如下所示:
SELECT location FROM x.y.zlocation
---------------------------
POINT (51.566682 83.32865)
POINT (46.77708 16.32856)
POINT (84.857691 4.295681)但是Trino (https://trino.io/docs/current/connector/mariadb.html)不支持这种数据
我只想要点(x,y)内的值(x,y)。
文档中有一个标志unsupported-type-handling=CONVERT_TO_VARCHAR,但是当我使用它时,检索到的数据如下所示:
location
-------------------------
�Q�GHJk ���*@
�{���GMg'���(@
0�Z¶nK@�B< / @我在这个varchar上测试了很多转换,但是没有人工作得很好。那么,如何使用Trino获得这种数据类型呢?
发布于 2022-11-30 15:47:26
数据类型不是文本,因此转换它不会有帮助。
只要它们返回允许的数据类型,就可以始终对myriadb使用natve函数。
表函数连接器提供特定的表函数来访问MariaDB。查询(Varchar) -> table#查询函数允许您直接查询底层数据库。它需要原生于MariaDB的语法,因为完整的查询是按下并在MariaDB中处理的。这对于访问Trino中不可用的本地特性或在本机运行查询可能更快的情况下提高查询性能非常有用。
所以像这样的查询会起作用
SELECT
X,Y
FROM
TABLE(
mariadb.system.query(
query => 'SELECT
ST_X(loacation) as X,
ST_Y/location) As Y
FROM
mytable'
)
);https://stackoverflow.com/questions/74630242
复制相似问题