如何有效查询大型LDIF文件?

时间:2018-06-09 10:27:12

标签: python sql ldap ldif

我有一个LDIF文件。我想从中提取信息,例如返回某个属性具有特定值的所有对象,或返回所有对象的特定属性的值。我希望这个效率很高,即使LDIF文件的大小是千兆字节。

显而易见的事情是在OpenLDAP中导入它,但是,我似乎缺少一些架构信息。我的LDAP技能有限,但我总是遇到这个错误:

$ slapadd -n 0 -F /etc/ldap/slapd.d -l config.ldif
5b1b9f46 PROXIED attributeDescription "DC" inserted.
5b1b9f46 <= str2entry: str2ad(instanceType): attribute type undefined
slapadd: could not parse entry (line=1)
_                       0.06% eta   none elapsed            none spd   7.1 M/s
Closing DB...

我的研究表明,使用OpenLDAP导入此LDIF文件并非易事。

另一个想法是以某种方式将其导入SQL。显然有几种方法可以存储分层数据,但它们似乎都没有产生廉价查询。我很高兴它基本上是只读的,所以我不在乎插入物是否昂贵。

我正在使用Linux,我更喜欢python中的解决方案。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于我是python-ldap的LDIF解析器的作者,所以我会说它太慢了,并且对于如此大的数据也会占用太多内存。

我建议检查所需的架构,然后使用 slapadd 将数据加载到OpenLDAP。这可能需要一些工作,但绝对不是火箭科学。