Je suis en cours d'exécution de la requête suivante sans problème:qpython.sync() retourne un QProjection au lieu des données interrogées
print(self.data_source.connections['history'].sync(
'{[x;y;z]select from trade where date within(x;y), sym in z}',
numpy.datetime64('2014-04-14', 'D'),
numpy.datetime64('2017-08-14', 'D'),
NumpyUtil.parse_symbols(['instr81', 'instr61', 'instr26'])
))
Ici, le self.data_source.connections[]
est juste un dictionnaire avec les tickerplant, les connexions hdb et RDB le NumpyUtil.parse_symbols()
est une petite méthode qui analyse l'argument au type correct de Numpy (a été testé avec succès).
Le résultat qu'elle produit est ce qui suit et est comme suspect:
[ ('2017-07-20', b'instr26', 31538122, b'instr14', 93.87083689, 77.0477359 , 81)
('2017-07-20', b'instr26', 31543119, b'instr72', 27.69372507, 80.00145357, 8)
('2017-07-20', b'instr26', 31678121, b'instr56', 58.24375362, 13.93626591, 36)
...,
('2017-07-26', b'instr81', 55344040, b'instr95', 18.75910878, 63.28561637, 98)
('2017-07-26', b'instr81', 81898858, b'instr78', 34.76710694, 8.32085477, 69)
('2017-07-26', b'instr81', 81938857, b'instr97', 64.54823106, 0.16524401, 81)]
parfait :)
Mon problème se pose lorsque je l'ai mis dans cette méthode d'emballage:
def synced_query(self, database, query, parameters):
print(self.connections[database].sync(query, parameters))
Lorsque en passant le exact mêmes paramètres, il renvoie quelque chose d'autre, un QProjection:
QProjection(QLambda('{[x;y;z]select from trade where date within(x;y),sym in z}'), [numpy.datetime64('2012-06-20'), numpy.datetime64('2017-07-30'), QList([b'instr81', b'instr61', b'instr26'],
dtype='|S7')])
Maintenant, je l'ai regardé à travers mon code (les données sont transmises autour par certaines fonctions avant de se retrouver dans la méthode synced_query()
) mais je crois que les données sont analysées et transmis correctement.
Lorsque j'examine les documents, la méthode q.sync()
doit renvoyer uniquement un message renvoyé par kdb et déclencher une exception. Donc, je me demande simplement pourquoi kdb me donne une réponse si étrange. Des idées? :)
Merci compagnon, qui a résolu le problème. Ma compréhension était que j'en avais seulement besoin dans la section des arguments (je l'avais enlevée juste pour voir ce qui se passerait). Je ne savais pas sur le «déballage». Merci! –