https://github.com/splitio/mixpanel2split
Java ETL job extracts last n days of events from MixPanel and loads them into Split.
https://github.com/splitio/mixpanel2split
Last synced: 3 months ago
JSON representation
Java ETL job extracts last n days of events from MixPanel and loads them into Split.
- Host: GitHub
- URL: https://github.com/splitio/mixpanel2split
- Owner: splitio
- Created: 2021-11-28T22:29:23.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-11-28T22:29:52.000Z (about 4 years ago)
- Last Synced: 2024-12-21T14:38:29.524Z (about 1 year ago)
- Language: Java
- Size: 1.63 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MixPanel to Split Events Integration

To run, build the executable JAR file and run with a JSON configuration as argument.
Compile with Maven:
mvn clean compile assembly:single
Executable JAR takes name of configuration file as argument.
Sample configuration file.
```
{
"lastNumberOfDays" : 1,
"connectTimeoutInSeconds" : 1800,
"readTimeoutInSeconds" : 1800,
"mixpanelProjectApiSecret" : "SECRET"
"splitServerSideApiKey" : "SECRET",
"environment" : "Prod-Default",
"eventPrefix" : "mix.",
"eventNames" : [],
"includedEvents" : [],
"mappings" : [
{
"trafficType": "user",
"key": "$user_id"
},
{
"trafficType": "device",
"key": "UTDID"
},
{
"trafficType": "user",
"key": "distinct_id"
}
],
"value" : 0,
"batchSize" : 500,
"retries" : 5,
"debugDirectory" : "/tmp/split",
"eventPostingThreadCount" : 8
}
```
Configuration Fields:
* "lastNumberOfDays" - how many days of MixPanel events should be extracted, counting backwards from today?
* "connectTimeoutInSeconds" - lengthy delay allowed by default to be friendly to MixPanel backend
* "readTimeoutInSeconds" - lengthy timeout allowed by default to be friendly to MixPanel backend
* "mixpanelProjectApiSecret" - find it in your project settings; must be API secret
* "splitServerSideApiKey" - Split server-side SDK key
* "environment" - Split environment, often "Prod-Default" or as found in Split UI
* "eventPrefix" - how will MixPanel properties be prefixed in Split?
* "includedEvents" - not yet implemented; all events are included
* "mapping" - events are expected for a key; when key is present and non-empty the event is sent to Split with the paired traffic type. Events can match more than one key, but if they don't match any key they are never sent.
* "batchSize" - how many Split events to send across in a single API request
* "value" - leave at zero in most cases
* "retries" - how many attempts should be made to resend data before a fail?
* "debugDirectory" - what directory should be written to for failed JSON files?
* "eventPostingThreadCount" - how many threads should be available to concurrently post events to Split?
* "eventNames" - array of string event names to exclude; passed in the query to MixPanel for filtering