@Override
        public ServiceTraffic storage2Entity(final Convert2Entity converter) {
            ServiceTraffic serviceTraffic = new ServiceTraffic();
            serviceTraffic.setName((String) converter.get(NAME));
            serviceTraffic.setShortName((String) converter.get(SHORT_NAME));
            serviceTraffic.setGroup((String) converter.get(GROUP));
            if (converter.get(LAYER) != null) {
                serviceTraffic.setLayer(Layer.valueOf(((Number) converter.get(LAYER)).intValue()));
            } else {
                serviceTraffic.setLayer(Layer.UNDEFINED);
            }
            // TIME_BUCKET column could be null in old implementation, which is fixed in 8.9.0
            if (converter.get(TIME_BUCKET) != null) {
                serviceTraffic.setTimeBucket(((Number) converter.get(TIME_BUCKET)).longValue());
            }
            return serviceTraffic;
        }
Primary key(id), to identify a service with different layers, a service could have more than one layer and be
saved as different records.

@return Base64 encode(serviceName) + "." + layer.value
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java