콘텐츠로 이동

입력 데이터소스 연결

입력 데이터소스는 하나의 논리적 센서 데이터 소스입니다 — OPC-UA 엔드포인트, MQTT 토픽 그룹, CSV 재생 파일 등. 각 소스는 자체 연결 설정과 태그 목록을 가진 유형화된 어댑터입니다. 해당 태그를 모델의 입력 채널에 매핑한 뒤 활성화하여 추론을 시작합니다.

연결 상태와 함께 구성된 OPC-UA, MQTT, CSV 입력 어댑터 목록을 보여주는 데이터 소스 화면 연결 상태와 함께 구성된 OPC-UA, MQTT, CSV 입력 어댑터 목록을 보여주는 데이터 소스 화면
데이터 소스 화면 — 소스 추가, 태그 매핑, 모델 페어링, 활성화.
  • OPC-UA — 호환 서버의 태그를 구독합니다.
  • MQTT — 직접 운영하는 브로커, TLS 지원.
  • CSV — 파일에서 기록된 데이터를 재생합니다(테스트에 적합).

워크스루: 소스 추가 및 추론 시작

섹션 제목: “워크스루: 소스 추가 및 추론 시작”
  1. 대시보드에서 Datasources → Input으로 이동한 뒤 + Create를 클릭합니다.

  2. 어댑터 유형 선택 및 연결 정보 입력

    섹션 제목: “어댑터 유형 선택 및 연결 정보 입력”

    소스 유형을 선택합니다. 폼은 선택한 프로토콜에 맞춰 변경됩니다 — 엔드포인트, 자격 증명, 프로토콜별 필드를 입력하세요. 시크릿 필드(비밀번호, 토큰)는 저장 후 ***로 마스킹됩니다.

    필드예시
    Endpointopc.tcp://your-opcua-host:4840/factory/line1
    Security policyNone (또는 인증서를 갖춘 Basic256Sha256 프로필)
    AuthenticationAnonymous (또는 사용자 이름/비밀번호)

    태그는 NodeId로 참조됩니다. 예: ns=2;i=2(숫자형) 또는 ns=2;s=Temperature(문자열형).

  3. 스트리밍할 태그를 나열하고 각각을 번호가 매겨진 입력 채널(0, 1, 2, …)에 할당합니다. 각 채널은 하나의 모델 입력을 공급합니다. 윈도우 크기 — 모델이 예측당 소비하는 연속 샘플 수 — 를 페어링할 모델에 맞게 설정하세요.

  4. 데이터소스를 저장합니다. 그런 다음 Models에서 업로드한 모델과 페어링합니다. 플랫폼이 호환성 검사를 실행하며 — 윈도우 크기 × 피처 개수가 양쪽에서 일치해야 하고 — 다르면 페어링을 거부합니다.

  5. 행에서 Enable을 토글합니다. 이는 구성을 검증하고, 페어링된 모델을 로드하며, 어댑터를 연결합니다. 연결 핸드셰이크(OPC-UA / MQTT)가 여기서 일어나므로, 네트워크나 자격 증명 문제가 지금 드러나 행을 오류 메시지와 함께 Disabled로 되돌립니다.

    활성화는 스트리밍을 자동으로 시작하지 않습니다 — 추론을 시작하려면 Start를 클릭하세요.

구성 폼은 이미 선택한 내용과 관련된 필드만 표시합니다. MQTT 탭에서는 TLS 필드(CA 인증서, 클라이언트 인증서/키, 신뢰되지 않은 인증서 허용)가 TLS를 켰을 때만 나타납니다. OPC UA 탭에서는 클라이언트 인증서/키 필드가 Certificate 인증 방식일 때만, 사용자 이름/비밀번호는 Username/Password 인증 방식일 때만 나타납니다. 폼의 모든 켜기/끄기 스위치는 색상만으로가 아니라 트랙 안의 체크 또는 엑스 표시로 상태를 보여줍니다.

모든 네트워크 프로토콜은 세 가지 보안 태세로 실행할 수 있습니다. 엔드포인트가 지원하는 가장 높은 태세를 선택하세요 — Insecure는 벤치 및 랩 작업 전용이며, 공장 네트워크에는 절대 사용하지 마세요.

아래에서 참조하는 인증서는 번들의 certs/ 디렉터리에 있으며, 백엔드에 /certs로 읽기 전용 마운트됩니다(번들 .env에서 AIBOARD_CERTS_ENABLED=1로 활성화). 구성 필드는 /certs 아래의 경로만 허용합니다 — 격리 영역 밖의 경로는 거부됩니다. 박스에는 CA 인증서와 클라이언트 인증서/키 쌍 복사하세요; CA 개인 키와 브로커/서버 키는 절대 PKI 호스트를 벗어나서는 안 됩니다.

필드
Security policyNone
Message security modeNone
AuthenticationAnonymous

암호화도 신원 확인도 없습니다 — 네트워크상의 누구나 태그 값을 읽고 서버를 사칭할 수 있습니다. 로컬 데모 랩이나 에어갭 벤치에 대해서만 허용됩니다.

필드
Broker URLmqtt://broker-host:1883
TLSoff
Username / password비움 (익명)

평문이며 익명입니다 — 세그먼트상의 누구나 읽고 위조할 수 있습니다. 랩 전용.

CSV는 파일 기반이므로 — 보호할 네트워크 채널이 없습니다. 보호는 파일시스템 수준이며 이미 적용되어 있습니다:

  • 파일 경로는 CSV 루트(컨테이너에서는 /data/csv, AIBOARD_CSV_ROOT) 아래로 격리됩니다; 경로 순회 시도는 거부됩니다.
  • 재생 데이터셋은 읽기 전용으로 마운트하고 CSV 볼륨은 박스에 유지하세요 — 박스 밖으로 내보내는 것은 데이터소스 설정이 아니라 데이터 거버넌스 결정입니다.

활성화 전에 소스에서 Test Connection을 사용하세요. 실시간 폼 값이 엔드포인트에 도달하는지 검증하므로, 태그를 연결하기 전에 잘못된 호스트나 자격 증명을 잡아낼 수 있습니다.

MQTT: 지연 허용 시간, 재연결, 비유한 값(NaN/Infinity) 거부

섹션 제목: “MQTT: 지연 허용 시간, 재연결, 비유한 값(NaN/Infinity) 거부”

MQTT는 값을 푸시하고, 추론은 틱마다 하나의 샘플을 가져옵니다. 캐시된 태그 값은 clamp(50 / SamplingHz, 5s, 60s) 이후 만료됩니다 — 기본값인 10 Hz에서는 5초입니다. 이 시간을 넘기면 오래된 태그는 읽기 실패를 일으켜 추론을 중단시킵니다. 센서가 조용해진 경우와 동일하게 취급됩니다.

브로커 연결이 끊기면 어댑터는 지수 백오프로 재연결하며, 데이터소스가 비활성화될 때까지 매 시도마다 매핑된 토픽을 다시 구독합니다.

NaNInfinity 페이로드(예: 1e400 같은 숫자 오버플로 포함)는 파서 단계에서 거부되며 모델에 도달하지 않습니다. 측정값 없음을 나타내는 센티널로 NaN을 게시하는 토픽은 설계상 추론을 중단시킵니다 — 센서가 조용해지는 것과 같은 계약입니다.

각 데이터소스에는 독립적인 속도 제한과 제한된 버퍼가 있습니다. 소스가 런타임이 소비하는 속도보다 빠르게 생성하면, 백프레셔가 대시보드에 보고되어 포화를 알아챌 수 있습니다.

증상가능한 원인
model_not_paired로 활성화 실패먼저 데이터소스에 모델을 페어링하세요.
연결 시 활성화가 롤백됨엔드포인트에 도달할 수 없거나, 자격 증명이 잘못되었거나, 방화벽 문제입니다 — Test Connection으로 확인하세요.
Enabled로 표시되나 예측값 없음설계상 그렇습니다 — 스트리밍을 시작하려면 Start를 누르세요.
페어링 거부모델과 데이터소스 간 윈도우 크기 × 피처 개수 불일치.
tag_outside_subscription_* 메시지로 태그 매핑 실패태그의 토픽이 데이터소스의 Base Topic 범위를 벗어났습니다 — Base Topic을 넓히거나 태그 경로를 수정하세요. 태그 매핑 오류는 원시 코드가 아니라 문장으로 표시됩니다.
한동안 잘 실행되다가 추론이 중단됨매핑된 MQTT 토픽이 지연 허용 시간을 초과했습니다(느린 게시자) — 위의 지연 허용 시간 설명을 참조하세요.

자세한 내용은 문제 해결 런북을 참조하세요.