8.3. 接收命令¶
这些命令用于插入和删除简单要素。所需的参数用 *
。
8.3.1. delete-features
¶
从方案中删除特定要素。请注意,如果删除所有要素,则删除模式并重新创建可能会更快。
论据 |
描述 |
---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
用于选择要删除的要素的CQL过滤器 |
|
取消确认提示 |
8.3.2. ingest
¶
摄取命令获取各种格式的文件,并将其摄取为 SimpleFeature
S在地理台地。通常,需要一个GeoMesa‘Converter’定义才能将输入数据映射到 SimpleFeature
S。GeoMesa支持分隔符文本(tsv、csv)、固定宽度文件、json、xml、avro等常见输入格式。转换器框架可通过Java SPI进行扩展,以支持定制格式。看见 GeoMesa转换器 有关转换器的详细信息,请参阅。
看见 移动和迁移数据 有关如何使用EXPORT/IMPORT命令在群集之间移动数据的详细信息。
论据 |
描述 |
---|---|
|
包含架构元数据的目录表 |
|
架构的名称 |
|
这个 |
|
用于创建以下内容的GeoMesa转换器 |
|
覆盖由转换器定义的错误模式 |
|
使用的并行线程数 |
|
输入文件格式(csv、tsv、avro、shp、json等) |
|
指定要写入的特定GeoMesa索引,而不是所有索引 |
|
此应用程序在接收作业提交时关闭。对于使用脚本启动作业很有用 |
|
一定是其中之一 |
|
将多个输入文件合并为单个输入拆分(仅限分布式作业) |
|
拆分的最大字节数(分布式作业) |
|
输入文件是文本文件,其中包含要摄取的文件列表,每行一个 |
|
取消任何确认提示 |
|
要摄取的输入文件 |
这个 --converter
参数可以是以下任意一种:
类路径上已提供的GeoMesa转换器的名称
转换器配置字符串
包含转换器配置的文件的名称
如果未指定转换器,GeoMesa将尝试根据输入文件推断转换器定义。目前,它支持GeoJSON、自描述Avro、分隔文本(TSV、CSV)或Shapefile。如果GeoMesa能够推断模式和转换器定义,则用户可以按原样接受它们,或者将它们用作完全定制转换器的基础。如果需要,用户可以将推断的转换器持久化到文件中,这允许轻松修改和重复使用。在摄取大型数据集时,在本地模式下摄取单个文件、使用模式推理来生成转换器可能很有用。转换器定义可以持久化并调整到令人满意的程度,然后通过分布式接收用于整个数据集。
看见 定义简单要素转换器 有关指定转换器的更多详细信息,请参见。
这个 converter-error-mode
参数可用于重写转换器中定义的错误模式。它一定是其中之一 skip-bad-records
或 raise-errors
。
如果 --feature-name
并且该架构已存在,则 --spec
不是必需的。同样,如果未定义转换器,则架构将与转换器一起推断。否则, --spec
可以是以下任一项:
属性字符串,例如
name:String,dtg:Date,*geom:Point:srid=4326
对象的名称
SimpleFeatureType
在类路径上已可用定义为TypeSafe配置的属性字符串
包含以上内容之一的文件的名称
如果该架构不存在,则 --feature-name
如果规范字符串中未隐含参数,则参数是必需的。它还可用于覆盖隐含的功能名称。
看见 定义简单要素类型 有关指定 SimpleFeatureType
。
这个 --input-format
参数可用于指定要接收的文件的类型。目前,GeoMesa支持Avro、CSV、TSV、Json/GeoJson、GML和SHP。如果未指定,将使用输入文件扩展名来确定文件类型。
这个 --no-tracking
参数指示应用程序在接收作业提交后关闭,而不是跟踪和显示接收进度。当脚本正在提交作业或不希望让JVM保持运行时,这很有用。请注意,提供此参数不会使应用程序静默,它仍将提供有关作业提交状态的信息。
这个 --run-mode
参数可用于在本地或分布式运行摄取(使用MAP/RECESS)。请注意,为了在分布式模式下运行,输入文件必须在HDFS中。默认情况下,本地文件系统上的输入文件将以本地模式获取,而HDFS中的输入文件将以分布式模式获取。这个 --combine-inputs
标志可用于在每个映射器中处理多个文件,最多可达 --split-max-size
。
这个 --threads
参数可用于提高本地摄取速度。但是,线程数不能超过输入文件数。这个 --threads
对于分布式接收,忽略参数。
这个 --split-max-size
参数可用于控制每个映射器处理的数据量。这在与DistributedCombine结合使用时非常有用 --run-mode
如果输入文件很小,或者为每个文件启动映射器都会变得非常慢。例如,如果您有100个5MB的文件,则100000000(100MB)的设置将安排5个映射器。
这个 --src-list
当要摄取的文件多于命令行允许您指定的文件时,参数非常有用。该文件指示GeoMesa将输入文件视为换行符分隔的文件列表。由于这使得运行可能需要几天的摄取作业变得非常容易,因此建议将列表拆分成合理的块,这些块可以在几个小时内完成。
这个 --force
参数可用于取消任何确认提示(通常来自转换器推理),这在编写命令脚本时很有用。
这个 <files>...
参数指定要接收的文件。 *
可用作文件路径中的通配符。GeoMesa可以处理 gzip , bzip 和 xz 只要文件扩展名与压缩类型匹配,即可压缩文件。GeoMesa支持从本地磁盘或HDFS摄取文件。此外,支持亚马逊的S3和微软的Azure文件系统,只需进行一些配置更改即可。看见 远程文件系统支持 了解更多细节。注意:此参数的行为由 --src-list
争论。
通过使用单个 -
对于输入文件,可以使用标准Shell重定向将输入数据直接输送到摄取命令。请注意,这将仅在本地模式下工作,并且将仅使用单个线程来摄取。在这种情况下,模式推理被禁用,进度指示器可能不完全准确,因为预先不知道总大小。
例如::
$ cat foo.csv | geomesa-accumulo ingest ... -
$ geomesa-accumulo ingest ... - <foo.csv
对于本地摄取,特写作者将被汇集在一起,仅定期刷新。刷新频率可以通过系统属性进行控制 geomesa.ingest.local.batch.size
,默认为每20,000个要素。