8.4. 查询和导出命令

这些命令用于查询和导出简单要素。所需的参数用 *

8.4.1. convert

CONVERT命令用于将一种格式的数据直接转换为另一种格式,而不会将它们转换到GeoMesa中。例如,它可以用于将CSV文件转换为GeoJSON。

论据

描述

-f, --feature-name

架构的名称

-s, --spec

这个 SimpleFeatureType 要创建的规格

-C, --converter

用于创建以下内容的GeoMesa转换器 SimpleFeature S

--converter-error-mode

覆盖由转换器定义的错误模式

-q, --cql

用于选择要导出的要素的CQL过滤器

-m, --max-features

限制导出的要素数量

-F, --output-format

用于导出的输出格式

-o, --output

输出到文件而不是标准输出

--input-format

输入文件的文件格式(shp、csv、tsv、avro等)

--hints

用于修改查询的查询提示

--gzip

用于输出的GZIP压缩级别,范围为1-9

--no-header

对于CSV和TSV格式,不导出类型标头

--suppress-empty

如果未转换任何要素,则不写入任何标头或其他输出

--force

在没有提示的情况下强制执行

看见 exportingest 以获取参数的描述。

8.4.2. explain

EXPLAIN命令可用于调试速度较慢或有问题的查询。在不实际运行查询的情况下,它将显示各种数据,包括正在使用的索引、提取的任何查询提示、正在扫描的准确范围和正在应用的过滤器。

论据

描述

-c, --catalog *

包含架构元数据的目录表

-f, --feature-name *

架构的名称

-q, --cql *

用于选择要导出的要素的CQL过滤器

-a, --attributes

要导出的特定属性

--hints

用于修改查询的查询提示

--index

用于运行查询的特定索引

看见 export 以获取参数的描述。

8.4.3. export

以各种格式导出要素。

看见 移动和迁移数据 有关如何使用EXPORT/IMPORT命令在群集之间移动数据的详细信息。

论据

描述

-c, --catalog *

包含架构元数据的目录表

-f, --feature-name *

架构的名称

-q, --cql

用于选择要导出的要素的CQL过滤器

-a, --attributes

要导出的属性的逗号分隔列表

--attribute

要导出的复杂属性转换

-m, --max-features

限制导出的要素数量

-F, --output-format

用于导出的输出格式

-o, --output

输出到文件而不是标准输出

--sort-by

按指定属性排序

--sort-descending

按降序排序,而不是默认的升序

--hints

用于修改查询的查询提示

--index

用于运行查询的特定索引

--no-header

对于CSV和TSV格式,取消正常列标题

--suppress-empty

如果未导出任何要素,则不写入任何标头或其他输出

--gzip

用于输出的GZIP压缩级别,范围为1-9

--chunk-size

将输出拆分为指定大小的多个文件

--run-mode

在本地运行或作为分布式映射/还原作业运行

--num-reducers

指定在分布式模式下运行时的缩减次数

--force

在没有提示的情况下强制执行

这个 --attributes--attribute 参数可用于选择要导出的属性子集,或使用筛选函数转换返回的属性。可以将简单投影指定为逗号分隔的列表:

--attributes name,age,geom

要素ID可与其他属性名称一起使用保留字指定 id **

--attributes id,name,age,geom

转换可以通过使用 --attribute 若要指定转换函数,请执行以下操作。请注意,与 --attributes ,每个参数只能指定一个参数,逗号不会被解释为分隔符::

--attribute id --attribute name --attribute "name_transform=strConcat(name, 'foo')"

有关变换的完整列表,请参阅GeoTool documentation 。但是,请注意,并非所有函数都能在转换中工作。

这个 --output-format 参数定义用于导出的编码。目前,它可以是以下之一:

  • arrow ApacheArrow流文件格式

  • avro 阿帕奇Avro格式

  • bin 自定义最小二进制编码

  • csv or tsv

  • json

  • gml or gml2 Geography Markup Language

  • html 如果可能,将数据导出到传单地图并在默认浏览器中打开

  • orc ApacheORC文件

  • parquet 阿帕奇拼图文件

  • shp ESRI Shapefile

  • null 完全禁止输出

备注

单张格式仅用于测试和小规模数据探索和可视化。对于产品地图生成,强烈建议使用Geoserver。此外,此命令生成的文件需要使用联机浏览器打开才能访问联机资源。

这个 --output 参数可用于导出到文件。默认情况下,导出数据写入标准输出。

这个 --sort-by 参数可用于按一个或多个属性对输出进行排序。请注意,对于本地导出,这通常是在内存中完成的,因此对于大型结果集来说代价可能很高。默认情况下,输出按升序排序; --sort-descending 可用于颠倒排序顺序。

这个 --hints 参数可用于设置查询提示。提示应指定为 key1=value1;key2=value2 请注意,由于Shell展开,提示字符串可能需要加引号。看见 分析查询 以获取可以设置的查询提示的示例。请注意,如果查询提示与指定的输出格式不对应,则可能会导致错误。

这个 --index 参数可用于强制查询针对特定索引运行,而不是使用通过查询规划确定的最佳索引。参数应该是索引的名称,例如 idz3 。看见 索引概述 以获取有效索引的列表。请注意,并非所有架构都具有所有索引类型。

这个 --gzip 参数可用于通过以下方式压缩输出 gzip 编码。它可以指定为1-9之间的数字。数字越高表示压缩越多,数字越低表示压缩速度越快。

这个 --chunk-size 参数可用于将输出拆分为多个较小的文件。它以字节为单位指定大小,例如 10MB 。请注意,由于缓冲和元数据的原因,通常不可能准确地达到区块大小。为了更好地控制,系统属性 org.locationtech.geomesa.export.bytes-per-feature 可用于将每个功能的初始字节数设置为浮点数,即 5.5 。如果一次导出为多种格式,则该属性 org.locationtech.geomesa.export.<name>.bytes-per-feature 也可以使用,其中 <name> 对应于上述输出格式之一(例如 jsonparquet 等)。

这个 --run-mode distributed 参数可用于为支持分布式映射/还原导出的数据存储指定分布式映射/还原导出。分布式导出可用于数据迁移或大规模排序。在分布式模式下运行时,输出文件必须位于分布式文件系统(例如HDFS或S3)中。在对分布式导出进行排序时, --num-reducers 必须指定才能设置减速机任务数。

这个 --force 参数可用于取消提示,例如覆盖现有文件的提示。这应该谨慎使用,因为如果导出到现有目录,可能会丢失数据。

8.4.4. playback

Playback命令可以通过重放已经接收的功能来模拟流接收。根据要素中的日期属性返回要素。例如,如果重播三个日期相隔一秒的要素,则每个要素都将在延迟一秒后发出。可以修改输出速率以加快或减慢原始时间差。

为了模拟数据流,此命令的输出可以被输送到另一个进程,例如向Kafka主题发送消息或将文件写入NiFi以供摄取。

论据

描述

-c, --catalog *

包含架构元数据的目录表

-f, --feature-name *

架构的名称

--interval *

要重放的日期间隔,格式为 yyyy-MM-dd'T'HH:mm:ss.SSSZ/yyyy-MM-dd'T'HH:mm:ss.SSSZ

--dtg

回放所基于的日期属性。如果未指定,将使用默认方案日期字段

--rate

以浮点形式加速(或减慢)返回要素的速率乘数

--live

将修改返回的日期以匹配当前时间

--step-window

以离散区块为单位查询时间间隔,而不是一次全部查询(‘10分钟’、‘30秒’等)

-q, --cql

用于选择要导出的要素的附加CQL过滤器。将自动过滤要素以匹配时间间隔

-a, --attributes

要导出的特定属性

-m, --max-features

限制导出的要素数量

-F, --output-format

用于导出的输出格式

-o, --output

输出到文件而不是标准输出

--hints

用于修改查询的查询提示

--no-header

对于CSV和TSV格式,不导出类型标头

--suppress-empty

如果未导出任何要素,则不写入任何标头或其他输出

--gzip

用于输出的GZIP压缩级别,范围为1-9

Playback命令是 export 命令,并接受此处概述的所有参数。

这个 --interval 参数指定要重放的要素的日期范围,该日期范围基于 --dtg 或默认架构日期属性(如果未指定)。

这个 --rate 参数可用于加快或减慢重播。它被指定为浮点数。例如 --rate 10 将使重播速度提高十倍,而 --rate 0.1 将使重播速度减慢十倍。

这个 --step-window 参数可用于根据时间间隔将查询分解为多个离散区块。对于较大的导出,这将节省排序时的内存开销,并且可能会更快。窗口应该足够大,以便创建多个查询的开销不会减慢过程,但也应该足够小,以便为每个查询返回一批可管理的功能。最佳窗口大小将取决于基于时间的功能密度和可用的硬件。