2017-08-04 70 views
0

我正在尋找配置SOLR以基於某些數據查詢表。 不幸的是,我不得不與數據庫的安裝方式一起工作,但這是我所追求的。Dynamic TableName SOLR數據導入處理程序

我有一個名爲Company的表格將包含某個「前綴」值。 我想使用該前綴值來確定我應該爲DIH查詢哪些表。

作爲一個快速示例:

<entity name="company" query="Select top 1 prefix from Company"> 
<field name="prefix" column="prefix"/> 
<entity name="item" query="select * from ${company.prefix}item"> 
<field column="ItemID" name="id"/> 
<field column="Description" name="description/> 
</entity> 
</entity> 

不過,我永遠只能似乎得到1號文件,儘管含有超過20萬行該表處理。

我做錯了什麼?

+0

不確定你使用的是哪個數據庫,但不能將查詢的表部分嵌入到主查詢本身中嗎?那麼它會很容易 – Persimmonium

+0

我正在使用MSSQL。 – Xyphius

回答

0

我想你可以通過實現這一點:使用存儲過程

  1. 。你可以從DIH調用一個sp,看看here
  2. 裏面的存儲過程,你可以根據需要做表查找,然後從真正的查詢中返回結果。

取決於你對MSSql-s SQL有多好,你可能只需將所有內容放入單個SQL查詢並直接在DIH中使用,但不確定。

+0

我最終使用了以下內容: 我最終使用了以下內容: 'declare @tablename nvarchar(50)set @tablename ='select * from ['+(select from top of 1 Company )+'item]'; EXECUTE sp_executesql @ tablename' – Xyphius