• cloud sql database export

    2017. 8. 2. 13:12

    by. 위지원



    텐써플로우 모델을 만들기 위해서..  데이터를 디비에서 읽어와 입력을 해야겠다고 생각했다.


    우선 텐서플로우에서 데이터를 로드하는 방법에는 무엇이 있는지 알아보았다.



    • Feeding: Python code provides the data when running each step.
    • Reading from files: an input pipeline reads the data from files at the beginning of a TensorFlow graph.
    • Preloaded data: a constant or variable in the TensorFlow graph holds all the data (for small data sets).


    1.feeding이 지난번에  간단한 코드를 동작시킬대 placeholder를 이용하여 변수를 지정했던 것이다.


    with tf.Session():
      input
    = tf.placeholder(tf.float32)
      classifier
    = ...
     
    print(classifier.eval(feed_dict={input: my_python_preprocessing_fn()}))

    이참에 placeholder가 무엇인지 자세히 알아보자 https://penglover.github.io/2017/01/14/tf-placeholder/ 블로그를 참고하면

    일종의 데이터를 담을 그릇같은 뜻이다. 그래서 feeding이라고 하는이유가 이렇게 정의된 그릇에 자료를 공급( feed ) 해야한다고 해서 feeding인것


    2.파일로부터 읽는것은 csv파일이나 이진파일을 읽어들여 사용한다.

    3.미리 로드된 데이터는 소규모 데이터에 적합하다.





    결론적으로는 데이터를 어떠한 형식으로 갖추어둔 뒤 해당 데이터를 모델에 넘겨주는 방식인 것 같다.

    나는 멍청하게 모델에서 데이터를 읽어오려고했다.. 그전에 모델에 데이터넣고 빼는걸 공부해놓고도.. 점점 머리가 퇴화되나보다.



    스택오버의 도움을 받아 가장 최적의 방법은 무엇일까요? 하고 질문을 해보았다. 그에대한 답변은 csv파일로 내보내어 사용하는 것

    그렇다면 cloud sql의 데이터를 csv로 export하는법을 알아보자


    https://cloud.google.com/sql/docs/mysql/import-export/exporting 이 페이지를 참조해보니 csv파일로 export를 지원해주고있었다! ^^

    마지막 줄에 보니 전체 디비의 테이블을 내보내주지는 않는듯하다..ㅠㅠ 하나하나 테이블을 지정해서 내보내야하는 것 같다.

    그럼 우선 내가 당장 필요한 테이블의 데이터만 빼오자!








    프로젝트내의 sql로 가보니 어렵지 않게 내보내기를 찾을 수 있었다.



    이곳에 csv로 내보내기가 있었다. 버킷을 지정한 뒤 쿼리문을 작성하여 내보내보니 지정된 버킷으로 파일을 내보낼 수 있었다.








    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨