2010-10-11 6 views
0

Je suis en train de développer une application de trading algorithmique utilisant le traitement d'événements complexes et je regarde Microsoft StreamInsight comme processeur CEP. Cependant, je ne suis pas sûr si tout ce que je veux faire est possible dans StreamInsight.Code dans les requêtes StreamInsight

En particulier, je devrais être capable de créer dynamiquement des stratégies qui seraient ensuite insérées dans le serveur en tant que requêtes permanentes. Par exemple, la personne A crée une stratégie dans laquelle un ordre d'achat doit être placé lorsque la moyenne sur 30 jours de l'action X dépasse une certaine valeur. Cela devrait ensuite être traduit dans une requête StreamInsight et être placé sur le serveur lors de l'exécution.

Quel type de code puis-je exécuter dans une requête StreamInsight? Je ne suis pas sûr si tout le traitement que je veux faire est possible dans une requête StreamInsight, car ce sont des requêtes linq. Puis-je utiliser des données provenant d'autres sources de données? Puis-je utiliser des commutateurs, des boucles, des déclarations de variables, etc. dans une requête? Ou est-ce juste une seule requête, comme avec les requêtes compilées?

Tout cela semble probablement un peu flou, si nécessaire, je vais essayer de clarifier davantage. Fondamentalement, ma question est, comment est-ce que je peux programmer mes requêtes StreamInsight? Les échantillons que j'ai trouvés ne montrent qu'un filtrage simple, un regroupement, etc.

Des suggestions sur d'autres serveurs CEP sont également les bienvenues, bien que je préfère vraiment rester dans mon domaine d'expertise, qui est .NET/C#.

Répondre

1

Plusieurs points vous permettent de extensibilité intégrer une logique personnalisée dans votre requête StreamInsight:

  • agrégats et les opérateurs définis par l'utilisateur (http://msdn.microsoft.com/en-us/library/ee842720.aspx) vous permettent d'effectuer des calculs arbitraires sur le contenu d'une fenêtre.
  • Les fonctions définies par l'utilisateur (http://msdn.microsoft.com/en-us/library/ee378928.aspx) prennent en charge la logique personnalisée sur les types "primitifs" (chaînes, nombres, etc.).
modèle

adaptateur de StreamInsight (http://msdn.microsoft.com/en-us/library/ee378877.aspx) vous permet de vous connecter à des sources de données arbitraires, si elles sont en temps réel ou historique.

Si vous avez des questions sur l'activation de fonctionnalités spécifiques, faites-le nous savoir!

-Colin

1

Vous pouvez créer des requêtes alors que le serveur StreamInsight est en cours d'exécution pour faire des choses nouvelles. Une fois que vous êtes familier avec l'API StreamInsight, ce n'est pas si difficile à faire et peut être fait localement au serveur StreamInsight (si vous hébergez en cours de processus) ou à distance en utilisant le service de gestion. Comme l'a dit Colin (ci-dessus), vous pouvez ajouter du code personnalisé dans vos requêtes pour effectuer des évaluations personnalisées.

Questions connexes