401 lines
8.4 KiB
Plaintext
401 lines
8.4 KiB
Plaintext
|
|
SELECT COUNT(*)
|
|
FROM `Results`
|
|
|
|
SELECT COUNT(DISTINCT run_id) AS unique_run_count
|
|
FROM `Results`;
|
|
|
|
SELECT COUNT(*) AS entries_for_run
|
|
FROM `Results`
|
|
WHERE run_id = -- your desired run_id here
|
|
2937;
|
|
|
|
|
|
ALTER TABLE `Runs`
|
|
ADD COLUMN grossrate DOUBLE GENERATED ALWAYS AS (
|
|
(
|
|
CASE
|
|
WHEN pam_level = 4 THEN 2.0
|
|
WHEN pam_level = 6 THEN 2.5
|
|
WHEN pam_level = 8 THEN 3.0
|
|
ELSE FLOOR(LOG2(pam_level) * 10) / 10
|
|
END
|
|
) * symbolrate
|
|
) STORED;
|
|
|
|
|
|
|
|
|
|
|
|
SELECT
|
|
JSON_EXTRACT(voa_class, '$.atten_state[1]') AS atten_state_second
|
|
FROM Runs
|
|
WHERE run_id = 1000;
|
|
|
|
SELECT DISTINCT
|
|
run_id
|
|
FROM Results r
|
|
WHERE date_of_processing > '2025-11-14 12:00:00';
|
|
|
|
SELECT DISTINCT
|
|
symbolrate
|
|
FROM Runs
|
|
WHERE pam_level = 4
|
|
AND symbolrate IS NOT NULL
|
|
ORDER BY symbolrate;
|
|
|
|
|
|
SELECT DISTINCT
|
|
wavelength
|
|
FROM Runs
|
|
|
|
SELECT
|
|
run_id,
|
|
COUNT(DISTINCT eq_id) AS unique_eq_count,
|
|
COUNT(*) AS entries_for_run
|
|
FROM `Results`
|
|
WHERE run_id IS NOT NULL
|
|
GROUP BY run_id
|
|
ORDER BY run_id;
|
|
|
|
|
|
SELECT
|
|
COUNT(DISTINCT eq_id) AS unique_eq_count,
|
|
COUNT(*) AS entries_for_run
|
|
FROM `Results`
|
|
WHERE run_id = -- your run_id here
|
|
2936;
|
|
|
|
SELECT
|
|
run_id,
|
|
COUNT(DISTINCT eq_id) AS unique_eq_count
|
|
FROM `Results`
|
|
WHERE run_id IS NOT NULL
|
|
GROUP BY run_id
|
|
ORDER BY run_id;
|
|
|
|
|
|
SELECT DISTINCT
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
e.eq,
|
|
e.mlse
|
|
FROM Results AS r
|
|
JOIN Equalizer AS e USING (eq_id)
|
|
WHERE r.run_id = -- your run_id here
|
|
2731
|
|
ORDER BY r.run_id, r.eq_id
|
|
|
|
|
|
|
|
|
|
SELECT DISTINCT
|
|
r.run_id
|
|
FROM Results AS r
|
|
JOIN Runs AS u
|
|
ON r.run_id = u.run_id
|
|
WHERE u.pam_level = 6
|
|
ORDER BY r.run_id;
|
|
|
|
-- older than aug 2025
|
|
CREATE OR REPLACE VIEW dashboard_old AS
|
|
SELECT
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
|
|
-- extract the DIR field from the JSON in e.MLSE
|
|
MAX(JSON_UNQUOTE(JSON_EXTRACT(e.MLSE, '$.DIR'))) AS DIR,
|
|
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
|
|
-- accumulated dispersion in ps
|
|
0.09 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
|
|
-- BER & new averages
|
|
AVG(r.BER) AS avg_BER,
|
|
MAX(r.SNR) AS max_SNR,
|
|
MAX(r.GMI) AS max_GMI,
|
|
AVG(r.Alpha) AS avg_Alpha,
|
|
|
|
MIN(r.BER) AS min_BER,
|
|
AVG(r.BER_precoded) AS avg_BER_precoded,
|
|
MIN(r.BER_precoded) AS min_BER_precoded,
|
|
COUNT(*) AS num_occurrences
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing < '2025-08-01 00:00:00'
|
|
GROUP BY
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode
|
|
ORDER BY
|
|
r.run_id,
|
|
r.eq_id;
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW dashboard_new AS
|
|
SELECT
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
|
|
-- extract the DIR field from the JSON in e.MLSE
|
|
MAX(JSON_UNQUOTE(JSON_EXTRACT(e.MLSE, '$.DIR'))) AS DIR,
|
|
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
|
|
-- accumulated dispersion in ps
|
|
0.09 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
|
|
-- BER & new averages
|
|
AVG(r.BER) AS avg_BER,
|
|
MAX(r.SNR) AS max_SNR,
|
|
MAX(r.GMI) AS max_GMI,
|
|
AVG(r.Alpha) AS avg_Alpha,
|
|
|
|
MIN(r.BER) AS min_BER,
|
|
AVG(r.BER_precoded) AS avg_BER_precoded,
|
|
MIN(r.BER_precoded) AS min_BER_precoded,
|
|
COUNT(*) AS num_occurrences
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing >= '2025-08-01 00:00:00'
|
|
GROUP BY
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode
|
|
ORDER BY
|
|
r.run_id,
|
|
r.eq_id;
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW dashboard_ungrouped_alltime AS
|
|
SELECT
|
|
r.result_id,
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.bitrate,
|
|
u.grossrate,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
u.rop_attenuation,
|
|
-- accumulated dispersion in ps
|
|
0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
r.date_of_processing,
|
|
r.numBits,
|
|
r.numBitErr,
|
|
r.BER,
|
|
r.numBitErr_precoded,
|
|
r.BER_precoded,
|
|
r.STD,
|
|
r.STDrx,
|
|
r.GMI,
|
|
r.AIR,
|
|
r.EVM,
|
|
r.Alpha
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL;
|
|
|
|
|
|
CREATE OR REPLACE VIEW dashboard_ungrouped_aug_nov_2025 AS
|
|
SELECT
|
|
r.result_id,
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.bitrate,
|
|
u.grossrate,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
u.rop_attenuation,
|
|
-- accumulated dispersion in ps
|
|
0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
r.date_of_processing,
|
|
r.numBits,
|
|
r.numBitErr,
|
|
r.BER,
|
|
r.numBitErr_precoded,
|
|
r.BER_precoded,
|
|
r.STD,
|
|
r.STDrx,
|
|
r.GMI,
|
|
r.AIR,
|
|
r.EVM,
|
|
r.Alpha
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing >= '2025-08-01 00:00:00'
|
|
AND r.date_of_processing < '2025-11-14 00:00:00';
|
|
|
|
|
|
-- Das waren meine ehemals besten BERs, im Nov habe ich ML-based hinzugefügt und
|
|
-- das Rx Filter nochmal sehr eng gestellt, das war inbesondere bei geringeren Raten sehr hilfreich um
|
|
-- out.of-band noise zu filtern -> BER ging ja teilweise runter und wieder hoch...
|
|
CREATE OR REPLACE VIEW dashboard_ungrouped_aug_nov_2025 AS
|
|
SELECT
|
|
r.result_id,
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.bitrate,
|
|
u.grossrate,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
u.rop_attenuation,
|
|
-- accumulated dispersion in ps
|
|
0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
r.date_of_processing,
|
|
r.numBits,
|
|
r.numBitErr,
|
|
r.BER,
|
|
r.numBitErr_precoded,
|
|
r.BER_precoded,
|
|
r.STD,
|
|
r.STDrx,
|
|
r.GMI,
|
|
r.AIR,
|
|
r.EVM
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing >= '2025-08-01 00:00:00'
|
|
AND r.date_of_processing < '2025-11-14 00:00:00';
|
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW dashboard_ungrouped_old AS
|
|
SELECT
|
|
r.result_id,
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
-- accumulated dispersion in ps
|
|
0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
r.date_of_processing,
|
|
r.numBits,
|
|
r.numBitErr,
|
|
r.BER,
|
|
r.numBitErr_precoded,
|
|
r.BER_precoded,
|
|
r.STD,
|
|
r.STDrx,
|
|
r.GMI,
|
|
r.AIR,
|
|
r.EVM
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing < '2025-08-01 00:00:00';
|
|
|
|
CREATE OR REPLACE VIEW dashboard_ungrouped_during_ecoc AS
|
|
SELECT
|
|
r.result_id,
|
|
r.run_id,
|
|
r.eq_id,
|
|
e.equalizer_structure,
|
|
u.symbolrate,
|
|
u.pam_level,
|
|
u.wavelength,
|
|
u.fiber_length,
|
|
u.db_mode,
|
|
-- accumulated dispersion in ps
|
|
0.07 * u.fiber_length * (u.wavelength - 1310) AS accumulated_dispersion,
|
|
r.date_of_processing,
|
|
r.numBits,
|
|
r.numBitErr,
|
|
r.BER,
|
|
r.numBitErr_precoded,
|
|
r.BER_precoded,
|
|
r.STD,
|
|
r.STDrx,
|
|
r.GMI,
|
|
r.AIR,
|
|
r.EVM
|
|
FROM Results AS r
|
|
JOIN Runs AS u ON r.run_id = u.run_id
|
|
JOIN Equalizer AS e ON r.eq_id = e.eq_id
|
|
WHERE r.eq_id IS NOT NULL
|
|
AND r.date_of_processing > '2025-09-20 00:00:00';
|
|
|
|
|
|
SELECT COUNT(*)
|
|
FROM `dashboard_ungrouped`
|
|
|
|
|
|
CREATE OR REPLACE VIEW power_state_info AS
|
|
SELECT
|
|
run_id,
|
|
|
|
power_laser AS power_laser,
|
|
|
|
power_rop AS power_mzm,
|
|
|
|
-- new power_rop first
|
|
power_pd_in
|
|
+ CAST(voa_class->>'$.atten_state[1]' AS DECIMAL(12,6))
|
|
AS power_rop,
|
|
|
|
-- then voa_atten
|
|
CAST(voa_class->>'$.atten_state[1]' AS DECIMAL(12,6))
|
|
AS voa_atten,
|
|
|
|
-- then the photodiode input power
|
|
power_pd_in AS power_pd_in,
|
|
|
|
-- appended columns
|
|
wavelength,
|
|
pam_level,
|
|
db_mode,
|
|
is_mpi,
|
|
fiber_length
|
|
|
|
FROM Runs;
|