在SnappyData中为大型数据集创建表

在SnappyData中为大型数据集创建表,snappydata,Snappydata,我随身携带3300万条记录,希望将其插入Snappydata数据库。我已经尝试在不设置选项的情况下创建列表。问题是spark正在将整个数据库加载到RAM中。我想设置列选项,以便获得更快的统计计数 根据参考资料,这是我们创建表格的方式: CREATE TABLE [IF NOT EXISTS] table_name { ( column-definition [ , column-definition ] * ) } USING row | column OPT

我随身携带3300万条记录,希望将其插入Snappydata数据库。我已经尝试在不设置选项的情况下创建列表。问题是spark正在将整个数据库加载到RAM中。我想设置列选项,以便获得更快的统计计数

根据参考资料,这是我们创建表格的方式:

CREATE TABLE [IF NOT EXISTS] table_name {
    ( column-definition [ , column-definition  ] * )
    }
    USING row | column 
    OPTIONS (
    COLOCATE_WITH 'table-name',  // Default none
    PARTITION_BY 'column-name', // If not specified it will be a replicated table.
    BUCKETS  'num-partitions', // Default 128. Must be an integer.
    REDUNDANCY        'num-of-copies' , // Must be an integer
    EVICTION_BY 'LRUMEMSIZE integer-constant | LRUCOUNT interger-constant | LRUHEAPPERCENT',
    PERSISTENCE  'ASYNCHRONOUS | ASYNC | SYNCHRONOUS | SYNC | NONE’,
    DISKSTORE 'DISKSTORE_NAME', //empty string maps to default diskstore
    OVERFLOW 'true | false', // specifies the action to be executed upon eviction event
    EXPIRE 'time_to_live_in_seconds',
    COLUMN_BATCH_SIZE 'column-batch-size-in-bytes', // Must be an integer. Only for column table.
    COLUMN_MAX_DELTA_ROWS 'number-of-rows-in-each-bucket', // Must be an integer. Only for column table.
    )
    [AS select_statement];
有人能给我推荐一些参数吗?我可以为诸如bucket、COLUMN\u MAX\u DELTA\u ROWS等选项设置这些参数,它们可以提高OLAP查询的性能

创建表后,我可以为表设置这些选项吗

例如:与SQL一样,我们可以使用ALTER为如下表设置额外选项:

ALTER TABLE t ENGINE=InnoDB

编辑:我们正在执行批量插入,每个插入200万。当每个批次以DFs的形式从json插入到表中时,它消耗的内存就像水一样。我们的问题是snappy过度使用RAM

对于大多数用例,缺省值应该可以正常工作。只有当您有很多“核心”时,您才能尝试增加存储桶的数量,以便正确地利用CPU。 遵循以下指导原则:

我们现在不支持改变额外的选项。 若要减少内存消耗,请使用列表。您可以尝试在启动服务器时减小堆大小。请看


这些参数将对您有所帮助:-heap size='memory allocation',-critical heap percentage=90-逐出堆百分比=81

我们面临的不是查询延迟,而是存储消耗问题。我已经编辑了这个问题,你能看一下吗?如果你有任何建议,请给我提一下。编辑了我的答案,用于分配和估计内存需求。