[TroubleShooting]카우치 베이스 N1QL 안될 경우

in couchbase •  7 years ago 

[ TROUBLE ] temp_bucket 이라는 버킷 생성 후 N1QL로 SELECT Query 실행시 에러메세지 발생.

SELECT * FROM temp_bucket

이미지 1.png

@ 에러메세지 확인

: No index available on keyspace <<temp_bucket>> that matches your query. Use CREATE INDEX or CREATE PRIMARY INDEX to create an index, or check that your expected index is online

: 해당버킷에 유효한인덱스 없으니 CREATE INDEX or CREATE PRIMARY INDEX 로 인덱스를 만들기. 이미 만들었다면 index가 online(=ready) 상태인지 체크해보아라.

[STEP 1 @ CHECK] index가 있는지 확인.

@ index 가 있어야 할 자리로 보이는데 없음.

이미지 2.png

[STEP 2 @ SHOOT] 인덱스 생성하기

CREATE PRIMARY INDEX temp_bucket_primary ON temp_bucket WITH { "defer_build":true }
이미지 3.png

@ 결과가 { "result" :[] } 면 성공

[STEP 3 @ CHECK] 인덱스 진짜 생성되었나 확인
이미지 5.png

@ temp_bucket 생성 되었으나 뭔가 혼자만 다른 status가 created 상태.

: 기다린다고 ready가 되지 않고...

: ready로 만들려면 인덱스를 빌드 해줘야 함.

[STEP 4 @ SHOOT] 인덱스 빌드.

  • cause: index를 ready 상태로 만들기 위함

BUILD INDEX ON temp_bucket (temp_bucket_primary) USING GSI;

※ 밑에 스샷에 QueryEditor 부분에는 ctrl+c, ctrl+v가 2번 된 걸로 찍혔네...
이미지 6.png

@ 결과가 { "result" :[] } 면 성공

[STEP 5 @ CHECK] 인덱스가 빌드 되서 ready되었는지 확인.
이미지 7.png

@ 생성 되어있음

[STEP 6 @ CHECK] N1QL로 SELECT 잘 되는지 확인.

SELECT * FROM temp_bucket

이미지 8.png

[STEP 7 @ CHECK] 데이터 좀 넣고 데이타도 잘 리턴하는 확인.

INSERT INTO temp_bucket (KEY, VALUE) VALUES ( "Test_key", {"date":1513733943, "name":"http://triviabox.tistory.com"} )

INSERT INTO temp_bucket (KEY, VALUE) VALUES ( "Other_key", {"date":15131245670, "name":"Trouble Shoot Finish."} )
이미지 9.png

@ 잘 되는것 확인.

Trouble Shooting Finish!!!!!!!!!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!