MySQL und Splunk – Wählen und verbinden

Ich habe ein Problem mit dem folgenden Code, wenn ich eine DBconnect-Abfrage innerhalb von Splunk aufstelle.

SELECT * FROM master_biz.legend_asset RIGHT JOIN master_custom.custom_app_table_4 ON master_custom.custom_app_table_4.ID = master_biz.legend_asset.ID 

Wenn ich den obigen Code benutze, wird er innerhalb von PHPmyAdmin perfekt ausgeführt. Wenn ich jedoch versuche, es in Splunk zu verwenden, erhalte ich einen Fehler, der besagt:

 Invalid Query External search command 'dbxquery' returned error code 1. Script output = "RuntimeError: Failed to run query: "SELECT * FROM (SELECT * FROM master_biz.legend_asset RIGHT JOIN master_custom.custom_app_table_4 ON master_custom.custom_app_table_4.ID = master_biz.legend_asset.ID) t", caused by:AvroRemoteException(u"com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Duplicate column name 'id'",). 

Dieser Fehler besagt, dass ich doppelte Spalten namens "ID" habe. Ich dachte, dies wäre ein perfekter timepunkt, um einige der data zu bereinigen, also habe ich versucht, das ID-Feld wie folgt umzubenennen:

 SELECT master_biz.legend_asset.roa_id AS ORGANIZATION_NUMBER, master_biz.legend_asset.make AS MANUFACTURER, master_biz.legend_asset.model AS PRODUCT, master_biz.legend_asset.status AS STATUS, master_biz.legend_asset.ID AS ASSET_ID FROM master_biz.legend_asset RIGHT JOIN master_custom.custom_app_table_4 ON master_custom.custom_app_table_4.ID = master_biz.legend_asset.ID 

Wenn ich jedoch diese Abfrage ausprobiere, bleiben mir nur die Felder, die ich umbenannt habe, und keine Felder aus der Tabelle custom_app_table_4. Wenn ich daran denke, dass das ID-Feld umbenannt wurde, habe ich die Abfrage folgendermaßen geändert:

 SELECT master_biz.legend_asset.roa_id AS ORGANIZATION_NUMBER, master_biz.legend_asset.make AS MANUFACTURER, master_biz.legend_asset.model AS PRODUCT, master_biz.legend_asset.status AS STATUS, master_biz.legend_asset.ID AS ASSET_ID FROM master_biz.legend_asset RIGHT JOIN master_custom.custom_app_table_4 ON master_custom.custom_app_table_4.ID = master_biz.legend_asset.ASSET_ID 

Dies führte zu folgendem Fehler:

 #1054 - Unknown column master_biz.legend_asset.ASSET_ID in on clause 

master_biz.legend_asset Tabelle

 <style type="text/css"> table.tableizer-table { font-size: 12px; border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif; } .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #CCC; } .tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold; } </style> <table class="tableizer-table"> <thead> <tr class="tableizer-firstrow"> <th>id</th> <th>did</th> <th>roa_id</th> <th>make</th> <th>model</th> <th>type</th> <th>function</th> <th>status</th> <th>owner</th> <th>serial</th> <th>asset_tag</th> <th>rfid</th> <th>date_edit</th> <th>user_edit</th> <th>a_notes</th> <th>owner_admin</th> <th>owner_tech</th> </tr> </thead> <tbody> <tr> <td>2</td> <td>0</td> <td>1</td> <td>Tenable</td> <td>Nessus</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/23/2016 16:19</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>3</td> <td>0</td> <td>1</td> <td>Tenable</td> <td>Nessus</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>4</td> <td>0</td> <td>2</td> <td>Microsoft</td> <td>Windows server Standard 2012 R2</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>5</td> <td>0</td> <td>0</td> <td>Solarwinds</td> <td>Kiwi CAT Tools</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>6</td> <td>0</td> <td>1</td> <td>Splunk</td> <td>Enterprise</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>7</td> <td>0</td> <td>1</td> <td>Splunk</td> <td>Enterprise Support</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/23/2016 16:19</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>8</td> <td>0</td> <td>1</td> <td>VMware</td> <td>vSphere 5/6 Support Standard</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>9</td> <td>0</td> <td>1</td> <td>VMware</td> <td>vSphere 5/6 Support Enterprise Plus</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> <tr> <td>10</td> <td>0</td> <td>1</td> <td>VMware</td> <td>vCenter 5/6 Support Standard</td> <td>&nbsp;</td> <td>Unknown</td> <td>Production</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>NULL</td> <td>&nbsp;</td> <td>5/20/2016 18:59</td> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>0</td> </tr> </tbody> </table> 

master_biz.asset_location Tabelle

 <style type="text/css"> table.tableizer-table { font-size: 12px; border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif; } .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #CCC; } .tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold; } </style> <table class="tableizer-table"> <thead> <tr class="tableizer-firstrow"> <th>iid</th> <th>location</th> <th>floor</th> <th>room</th> <th>plate</th> <th>panel</th> <th>punch</th> <th>zone</th> <th>rack</th> <th>shelf</th> <th>date_edit</th> <th>user_edit</th> <th>l_notes</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>2</td> <td>Lab</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>3</td> <td>Production</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>4</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>5</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>6</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>7</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>8</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>9</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td>&nbsp;</td> </tr> <tr> <td>10</td> <td>&nbsp;</td> <td>0</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>0000-00-00 00:00:00</td> <td>1</td> <td></td> </tr> </tbody> </table> 

master_custom.custom_app_table_4 Tabelle

 <style type="text/css"> table.tableizer-table { font-size: 12px; border: 1px solid #CCC; font-family: Arial, Helvetica, sans-serif; } .tableizer-table td { padding: 4px; margin: 3px; border: 1px solid #CCC; } .tableizer-table th { background-color: #104E8B; color: #FFF; font-weight: bold; } </style> <table class="tableizer-table"> <thead> <tr class="tableizer-firstrow"> <th>id</th> <th>2_2</th> <th>8_2</th> <th>9_2</th> <th>10_2</th> <th>11_2</th> <th>12_2</th> <th>13_2</th> </tr> </thead> <tbody> <tr> <td>2</td> <td>Software License</td> <td>Tenable</td> <td>Professional</td> <td>1</td> <td>5/10/2017</td> <td>2190</td> <td>&nbsp;</td> </tr> <tr> <td>3</td> <td>Software License</td> <td>Tenable</td> <td>Professional</td> <td>1</td> <td>5/10/2017</td> <td>2190</td> <td>&nbsp;</td> </tr> <tr> <td>4</td> <td>Software License</td> <td>Microsoft</td> <td>Standard</td> <td>10</td> <td>5/3/2016</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>5</td> <td>Software Maintenance</td> <td>Solarwinds</td> <td>N/A</td> <td>4</td> <td>10/30/2016</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>6</td> <td>Software License</td> <td>Splunk</td> <td>20GB</td> <td>1</td> <td>6/1/2016</td> <td>60000</td> <td>&nbsp;</td> </tr> <tr> <td>7</td> <td>Software Maintenance</td> <td>Splunk</td> <td>Enterprise</td> <td>1</td> <td>6/1/2016</td> <td>0</td> <td>&nbsp;</td> </tr> <tr> <td>8</td> <td>Software Maintenance</td> <td>VMware</td> <td>24x7 Production</td> <td>30</td> <td>5/10/2017</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>9</td> <td>Software Maintenance</td> <td>VMware</td> <td>Subscription Only</td> <td>46</td> <td>5/10/2017</td> <td>4375</td> <td>&nbsp;</td> </tr> <tr> <td>10</td> <td>Software Maintenance</td> <td>VMware</td> <td>Subscription Only</td> <td>3</td> <td>5/10/2017</td> <td>530</td> <td></td> </tr> </tbody> </table> 

Letztendlich habe ich einige Hindernisse, die ich mit einer einzigen Frage zu überwinden versuche. Ich möchte ausgewählte Spalten aus verschiedenen Tabellen innerhalb mehrerer databaseen verbinden und die Spalten in etwas, das logischer ist, umbenennen.

Kurz gesagt, ich möchte diese drei Tabellen mithilfe einer SQL-Abfrage in einer Tabelle zusammenführen können. Wenn es möglich ist, wäre es nett, die Namen einiger Felder zu ändern, damit die data leichter zu interpretieren sind. Es wäre toll, nur die Felder auswählen zu können, die ich von jeder Tabelle haben möchte.

Durch die Kombination dieser Tabellen und die Auswahl nur der Felder, die von Interesse sind, wird die tägliche Nutzungslizenz innerhalb von Splunk, Plattenspeicherplatz sowie die CPU-Nutzung während der search gespart.

Jede Hilfe wird sehr geschätzt.

Solutions Collecting From Web of "MySQL und Splunk – Wählen und verbinden"

SELECT * ist Antipattern. Wenn id nur eine Spalte ist, die in beiden Tabellen vorhanden ist, können Sie Folgendes verwenden:

 SELECT * FROM master_biz.legend_asset RIGHT JOIN master_custom.custom_app_table_4 USING (id); 

Andernfalls müssen Sie für jede Spalte manuell einen Alias ​​hinzufügen:

 SELECT a.ID AS id ,a. ... AS ... ,t4.col AS ... FROM master_biz.legend_asset a RIGHT JOIN master_custom.custom_app_table_4 t4 ON a.ID = t4.ID; 

Hinweis: Sie müssen den Tabellennamen nicht schreiben, Sie könnten Tabellenaliase verwenden.

BEARBEITEN:

Was sind die Unterschiede in den Teilen von JOIN ON und JOIN USING?

USING gibt Spalten zurück, die einmal in JOIN werden:

 SELECT * FROM t1 JOIN t2 USING(i); SELECT * FROM t1 JOIN t2 ON t1.i = t2.i; 

SqlFiddleDemo

Ausgabe:

 ╔════╦════╦═══╗ ║ i ║ b ║ c ║ ╠════╬════╬═══╣ ║ 1 ║ 1 ║ 3 ║ ╚════╩════╩═══╝ 

gegen

 ╔════╦════╦════╦═══╗ ║ i ║ b ║ i ║ c ║ ╠════╬════╬════╬═══╣ ║ 1 ║ 1 ║ 1 ║ 3 ║ ╚════╩════╩════╩═══╝