Integración de datos
Neykos expone tus datos operacionales — órdenes de producción, OEE, tiempos muertos, calidad — a través de un conjunto de vistas de solo lectura en ClickHouse. Esta página describe todo lo que necesitas para conectarte: credenciales, endpoints, SSL, la vista disponible y sus columnas, además de ejemplos end-to-end en los clientes más comunes.
TL;DR
Recibes un usuario de solo lectura, una contraseña y uno o más nombres de vista. Apunta cualquier cliente compatible con ClickHouse a:
- Host:
89.167.19.228(puerto8123, sin SSL) — ointegrations.neykos.net(puerto443, SSL habilitado) - Base de datos:
oee - Vista:
oee.v_<customer>_production_orders(la que Neykos te provee)
Autentícate con el usuario y la contraseña que Neykos compartió contigo y haz SELECT sobre la vista.
Auto-rellenado
Puedes precompletar los ejemplos de esta página agregando parámetros a la URL. Por ejemplo: ?client=cca reemplaza el nombre de la vista por oee.v_cca_production_orders. También se aceptan ?user=, ?password= y ?view= para sobrescribir esos campos.
1. Resumen
Neykos provee acceso de solo lectura a datasets operacionales seleccionados a través de ClickHouse.
Cada cliente recibe:
- Un usuario de solo lectura dedicado.
- Acceso únicamente a las vistas habilitadas explícitamente para ese cliente.
- Sin acceso a tablas internas.
- Sin acceso a los datos de otros clientes.
El nombre de la vista, el usuario y la contraseña varían entre clientes.
2. Información de conexión
| Campo | Valor |
|---|---|
| Tipo de base de datos | ClickHouse |
| Host (IP directa) | 89.167.19.228 |
| Host (HTTPS) | integrations.neykos.net |
| Puerto (HTTP) | 8123 |
| Puerto (HTTPS) | 443 |
| Base de datos | oee |
| Usuario | <provided_user> |
| Contraseña | <provided_password> |
| Vista disponible | <provided_view_name> (ejemplo: oee.v_customer_production_orders) |
| Modo de acceso | solo lectura |
Credenciales
Los placeholders <provided_user>, <provided_password> y <provided_view_name> son completados por Neykos durante el onboarding. Nunca los subas al control de versiones — mantenlos en un gestor de secretos o en variables de entorno.
3. Configuración SSL
Host: 89.167.19.228
Port: 8123
SSL : deshabilitadoHost: integrations.neykos.net
Port: 443
SSL : habilitadoUsa el endpoint HTTPS siempre que tu cliente y red lo permitan.
4. Vista de órdenes de producción
La vista de órdenes de producción contiene datos específicos del cliente. El patrón de nombrado es:
oee.v_<customer>_production_ordersLa vista ya está filtrada para el cliente correspondiente — no es necesario que agregues un filtro adicional por customer / client desde tu lado.
5. Columnas disponibles
order_number
order_code
created_at
updated_at
start_time_utc
end_time_utc
start_time_local
end_time_local
start_date_local
end_date_local
duration_seconds
line_name
line_code
product_name
product_code
target_quantity
total_produced
good_quantity
rejected_quantity
rework_quantity
scrap_quantity
units_per_box
boxes_per_pallet
status_name
status_code
is_open6. Descripción de columnas
| Columna | Descripción |
|---|---|
order_number | Número de orden de producción. Usualmente el identificador principal de la orden. |
order_code | Código interno de la orden. Puede estar vacío si el PMS de origen no lo provee. |
created_at | Timestamp en que se creó la orden en el PMS. |
updated_at | Timestamp de la última actualización en el PMS. |
start_time_utc | Inicio de la orden en UTC. |
end_time_utc | Fin de la orden en UTC. Puede estar vacío si la orden está abierta. |
start_time_local | Inicio de la orden en hora operacional local. |
end_time_local | Fin de la orden en hora operacional local. Puede estar vacío si la orden está abierta. |
start_date_local | Fecha local de inicio. Recomendada para análisis diario operacional. |
end_date_local | Fecha local de término. |
duration_seconds | Duración de la orden en segundos. |
line_name | Nombre de la línea de producción. |
line_code | Código de la línea de producción. |
product_name | Nombre del producto. |
product_code | Código del producto. |
target_quantity | Cantidad objetivo planificada. |
total_produced | Cantidad total producida registrada por el sistema. |
good_quantity | Unidades buenas registradas por el sistema. |
rejected_quantity | Unidades rechazadas. |
rework_quantity | Unidades de reproceso. |
scrap_quantity | Merma. |
units_per_box | Unidades por caja. |
boxes_per_pallet | Cajas por pallet. |
status_name | Estado legible de la orden. |
status_code | Código técnico del estado de la orden. |
is_open | Indica si la orden está abierta. 1 = abierta, 0 = cerrada. |
7. Posibles códigos de estado
| Código | Significado |
|---|---|
PRODUCTION_ORDER_RECEIVED | Orden recibida / planificada, aún sin iniciar. |
PRODUCTION_ORDER_RUNNING | Orden corriendo actualmente. |
PRODUCTION_ORDER_COMPLETED | Orden completada. |
PRODUCTION_ORDER_SENDED | Orden enviada / cerrada, según el flujo del PMS. |
PRODUCTION_ORDER_DISABLED | Orden deshabilitada. |
PRODUCTION_ORDER_DELETED | Orden eliminada. |
8. Consultas SQL de referencia
Reemplaza <provided_view_name> por la vista que Neykos te entregó.
Query de prueba
SELECT count()
FROM <provided_view_name>Últimas órdenes actualizadas
SELECT
order_number,
line_name,
product_name,
target_quantity,
total_produced,
status_code,
is_open,
updated_at
FROM <provided_view_name>
ORDER BY updated_at DESC
LIMIT 10Órdenes abiertas
SELECT
order_number,
line_name,
product_name,
target_quantity,
total_produced,
status_code,
start_time_local,
updated_at
FROM <provided_view_name>
WHERE is_open = 1
ORDER BY updated_at DESCResumen por línea de producción
SELECT
line_name,
count() AS orders,
countIf(is_open = 1) AS open_orders,
countIf(is_open = 0) AS closed_orders,
sum(target_quantity) AS target_quantity,
sum(total_produced) AS total_produced
FROM <provided_view_name>
GROUP BY line_name
ORDER BY orders DESCProducción por fecha local
SELECT
start_date_local,
line_name,
count() AS orders,
sum(target_quantity) AS target_quantity,
sum(total_produced) AS total_produced
FROM <provided_view_name>
GROUP BY start_date_local, line_name
ORDER BY start_date_local DESC, line_name9. Formas de conexión
Todos los métodos usan las mismas credenciales. Elige el que coincida con tu stack.
9.1 API HTTP (curl)
ClickHouse expone una interfaz HTTP para queries. Envía el SQL como cuerpo del POST y elige un formato de respuesta como JSON, JSONEachRow, CSV o TSV.
curl 'http://89.167.19.228:8123/?database=oee&user=<provided_user>&password=<provided_password>' \
--data-binary '
SELECT
order_number,
line_name,
product_name,
target_quantity,
total_produced,
status_code
FROM <provided_view_name>
LIMIT 10
FORMAT JSON
'curl 'https://integrations.neykos.net/?database=oee&user=<provided_user>&password=<provided_password>' \
--data-binary '
SELECT
order_number,
line_name,
product_name,
target_quantity,
total_produced,
status_code
FROM <provided_view_name>
LIMIT 10
FORMAT JSON
'Buena práctica
Envía las credenciales por cabeceras HTTP en lugar de query params para mantenerlas fuera de los logs:
curl 'https://integrations.neykos.net/?database=oee' \
-H 'X-ClickHouse-User: <provided_user>' \
-H 'X-ClickHouse-Key: <provided_password>' \
--data-binary 'SELECT count() FROM <provided_view_name> FORMAT JSON'9.2 Python — clickhouse-connect (recomendado)
El cliente oficial de Python soporta la interfaz HTTP y devuelve tipos nativos, DataFrames de Pandas y tablas Arrow.
pip install clickhouse-connect pandasimport os
import clickhouse_connect
client = clickhouse_connect.get_client(
host='integrations.neykos.net',
port=443,
secure=True,
username=os.environ['NEYKOS_USER'],
password=os.environ['NEYKOS_PASSWORD'],
database='oee',
)
# Query plana → lista de tuplas
result = client.query("SELECT count() FROM v_customer_production_orders")
print(result.result_rows)
# Query a DataFrame de Pandas
df = client.query_df(
"""
SELECT start_date_local, line_name,
sum(target_quantity) AS target,
sum(total_produced) AS produced
FROM v_customer_production_orders
GROUP BY start_date_local, line_name
ORDER BY start_date_local DESC
"""
)
print(df.head())Si necesitas usar la IP directa: host='89.167.19.228', port=8123, secure=False.
9.3 Node.js / TypeScript — @clickhouse/client
npm install @clickhouse/clientimport { createClient } from '@clickhouse/client'
const client = createClient({
url: 'https://integrations.neykos.net',
username: process.env.NEYKOS_USER!,
password: process.env.NEYKOS_PASSWORD!,
database: 'oee',
})
const rs = await client.query({
query: `
SELECT order_number, line_name, total_produced, status_code
FROM v_customer_production_orders
WHERE is_open = 1
ORDER BY updated_at DESC
LIMIT 50
`,
format: 'JSONEachRow',
})
const orders = await rs.json<{
order_number: string
line_name: string
total_produced: number
status_code: string
}>()
console.log(orders)
await client.close()9.4 JDBC
Usa el driver oficial JDBC de ClickHouse — clase com.clickhouse.jdbc.ClickHouseDriver.
jdbc:clickhouse://89.167.19.228:8123/oeejdbc:clickhouse:https://integrations.neykos.net:443/oeeEjemplo Java mínimo:
String url = "jdbc:clickhouse:https://integrations.neykos.net:443/oee";
Properties props = new Properties();
props.setProperty("user", System.getenv("NEYKOS_USER"));
props.setProperty("password", System.getenv("NEYKOS_PASSWORD"));
try (Connection conn = DriverManager.getConnection(url, props);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT count() FROM v_customer_production_orders")) {
while (rs.next()) System.out.println(rs.getLong(1));
}9.5 Databricks / Spark
jdbc_url = "jdbc:clickhouse:https://integrations.neykos.net:443/oee"
view_name = "<provided_view_name>"
user = dbutils.secrets.get("neykos", "user") # o os.environ[...]
password = dbutils.secrets.get("neykos", "password")
df = (
spark.read
.format("jdbc")
.option("url", jdbc_url)
.option("driver", "com.clickhouse.jdbc.ClickHouseDriver")
.option("user", user)
.option("password", password)
.option("dbtable", view_name)
.load()
)
display(df)9.6 Herramientas BI
Metabase
- Admin → Bases de datos → Agregar → ClickHouse.
- Host:
integrations.neykos.net, Puerto:443, SSL: ✅ - Base de datos:
oee, Usuario / Contraseña: las que entregó Neykos. - Guardar. La vista provista aparece bajo
oee.
Apache Superset
Instala clickhouse-connect y agrega una base de datos con la URI SQLAlchemy:
clickhousedb+connect://<provided_user>:<provided_password>@integrations.neykos.net:443/oee?secure=trueGrafana
Instala el plugin de Grafana para ClickHouse y configura:
- Server address:
integrations.neykos.net - Server port:
443 - Protocol:
HTTP, Secure connection: ✅ - Default database:
oee - Usuario / contraseña entregados por Neykos
Tableau
Usa el conector ClickHouse JDBC con la URL JDBC de §9.4.
Power BI
Power BI Desktop incluye un conector ClickHouse nativo (Obtener datos → ClickHouse). Usa integrations.neykos.net, puerto 443, SSL on, base de datos oee y las credenciales que entregó Neykos. Para versiones antiguas, instala el driver ODBC de ClickHouse y conecta vía ODBC.
9.7 Excel / Power Query (ODBC)
- Instala el driver ODBC de ClickHouse.
- Crea un DSN de sistema llamado
Neykosapuntando aintegrations.neykos.net:443, base de datosoee, SSLon. - En Excel: Datos → Obtener datos → Desde otras fuentes → Desde ODBC → DSN
Neykos.
9.8 Clientes gráficos (DBeaver, DataGrip, TablePlus)
Cualquier cliente que soporte ClickHouse funciona igual:
| Campo | Valor |
|---|---|
| Driver | ClickHouse (HTTP) |
| Host | integrations.neykos.net |
| Puerto | 443 |
| Base de datos | oee |
| SSL / TLS | on |
| Usuario | <provided_user> |
| Contraseña | <provided_password> |
DBeaver
Database → New Database Connection → ClickHouse → completa los campos arriba → Test Connection → Finish. La vista provista aparece bajo oee → Views.
10. Notas y buenas prácticas
- El acceso es solo lectura.
- El usuario provisto sólo puede acceder a las vistas habilitadas explícitamente por Neykos.
- El usuario no tiene acceso a tablas internas ni a datos de otros clientes.
- Las vistas ya aplican
FINALinternamente — no necesitas agregarFINALen tus queries. - El identificador principal de una orden suele ser
order_number.order_codepuede venir vacío si el PMS de origen no lo provee. - Para análisis diario operacional usa
start_date_local,start_time_localyend_time_local. Los timestamps UTC se proveen para integraciones técnicas entre sistemas. - Trata la contraseña como cualquier secreto productivo — cárgala desde variables de entorno o un gestor de secretos; nunca la metas a un repo.
11. Soporte
Si aún no tienes credenciales, o necesitas habilitar una nueva vista, contacta a tu punto de contacto en Neykos. Reportes de bugs y dudas de integración son bienvenidos en la misma dirección.
