如何设置用于点燃缓存的过期策略[使用SPARK数据框插入数据]

时间:2018-07-21 19:43:58

标签: apache-spark caching configuration apache-spark-sql ignite

我正在尝试使用xml配置文件设置过期策略:

=INDEX(C:C, AGGREGATE(15, 6, ROW($2:$99)/((A$2:A$99=F2)*(B$2:B$9>=G2)), 1))

我对Ignite有点陌生。我经过documentation,但找不到。有什么办法可以将ExpiryPolicy设置为XMl?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

这需要一点Spring XML魔术,因为CreatedExpiryPolicy没有易于使用的工厂类(即没有CreatedExpiryPolicyFactory可以像普通bean一样实例化),但是那里是CreatedExpiryPolicy::factoryOf,可以作为factory-method传递:

<property name="expiryPolicyFactory">
    <bean class="javax.cache.expiry.CreatedExpiryPolicy" factory-method="factoryOf">
        <constructor-arg>
            <bean class="javax.cache.expiry.Duration">
                <constructor-arg value="SECONDS"/>
                <constructor-arg value="10"/>
            </bean>
        </constructor-arg>
    </bean>
</property>

答案 1 :(得分:0)

Apache Ignite不支持SQL表的过期策略和TTL。

另一种选择是根据所需的时间窗口使用动态生成的名称创建缓存。

例如,如果需要每小时添加一天中的某个小时:

MY_CACHE_00

MY_CACHE_01

MY_CACHE_02

等...

MY_CACHE_23

然后使您的软件写入/读取最新的CACHE,并清除最旧的时间。