你好,感谢你的分享~
关于你提到的两点疑问,下面是简单的说明哈:
- batch参数:spark导入是批量的,将源数据批量insert到nebula graph。 batch是设定多少条数据作为一个批次,该值可以根据实际数据的大小进行设定,源码中默认值为2。当一条数据属性少于5个时建议设置1000。
- rate.limit参数:当导入数据的速度过快时,服务端可能会出现RaftPart buffer full的情况,为了确保服务端buffer不被打满,可以通过rate.limit限定下数据导入的速度。该值是令牌桶的大小,数据批量导入时会先拿令牌再执行导入操作,正常情况下按照默认值即可。
- Exchange工具Hive导入原理:
exchange在导入Hive数据时主要包括三个流程:spark读取hive数据、将hive数据转换为Nebula Graph的点数据或边数据、将转换后的点数据和边数据insert入Nebula Graph。
(1)Spark读取hive时必须要对SparkSession配置enableHiveSupport()参数,spark-submit命令中的-h参数就是用来配置enableHiveSupport()的。
(2)Exchange1.0不支持Hive数据源的可配置,默认读取提交Spark任务的Spark环境中的hive数据。 exchange2.0会支持外部hive数据源的导入。
Exchange2.0 coming soon~~