파이프라인
이 섹션에서는 SQL 기반의 파이프라인을 이용하여 AI 서비스를 사용하는 방법에 대해 설명합니다.
AI 서비스로 ArrowIPC 를 이용하여 실시간 데이터를 전달하기 위해 Arrow 테이블을 생성하고 AI 서비스의 주소를 Location 에 설정합니다. (AI 서비스 주소는 AI 서비스 이름(pyonnx)과 동일합니다) 그리고 분석 결과를 전달받기 위해 Response 옵셥에 채널 주소를 설정합니다. (채널 주소는 http://arros:8886/channels/{channel_name}' 입니다) 이제 샘플 이미지 몇 개를 Arrow 테이블에 삽입하면 AI 서비스로 전달됩니다.
DROP TABLE IF EXISTS image0;
DROP TABLE IF EXISTS arrow0;
CREATE TABLE image0 (url varchar) AS VALUES
('https://images.dog.ceo/breeds/retriever-golden/n02099601_3004.jpg'),
('https://images.dog.ceo/breeds/eskimo/n02109961_18527.jpg'),
('https://images.dog.ceo/breeds/spitz-japanese/tofu.jpg');
CREATE UNBOUNDED EXTERNAL TABLE arrow0 STORED AS ARROW LOCATION 'http://pyonnx:8081' OPTIONS ('schema' 'image0', 'response' 'http://arros:8886/channels/onnx');
INSERT INTO arrow0 SELECT * FROM image0;
AI 서비스로부터 분석 결과를 전달받기 위해 Response 옵션에 설정한 채널 이름(onnx)으로 채널 테이블을 생성한 다음, 해당 테이블을 쿼리하면 분석 결과를 볼 수 있습니다.
DROP TABLE IF EXISTS channel0;
CREATE UNBOUNDED EXTERNAL TABLE channel0 (image varchar, class bigint) STORED AS CHANNEL LOCATION 'onnx';
SELECT * FROM channel0;
위의 분석 결과는 아래와 같습니다.
image class
0 https://images.dog.ceo/breeds/retriever-golden... 207
1 https://images.dog.ceo/breeds/eskimo/n02109961... 248
2 https://images.dog.ceo/breeds/spitz-japanese/t... 258